2013-01-17 116 views
36

我在Google雲端存儲中有1000個文件用於公開目錄,或者通常是目錄層次結構。您如何在Google雲端存儲中公開許多文件?

在Web UI中,我似乎只能一次性公開。

有沒有辦法做到這一點。

+0

我找到了。您可以運行:gsutil ls來獲取文件列表。然後,您可以使用gsutil setacl public-read *將列表管道輸入到xargs中。你也可以做gsutil setdefacl公開閱讀,以便將來上傳的文件將公開 – engineerchuan

回答

65

運行gsutil -m acl set -R -a public-read gs://bucket

  • -m問題在同一時間多個請求。
  • -R發出您桶中每個對象的請求。
  • -a發出請求每個對象的每個版本。

查看gsutil help acl瞭解更多信息。

在API層gsutil發出以下HTTP請求:

PUT /bucket/obj?acl HTTP/1.1 
Host: storage.googleapis.com 
x-goog-acl: public-read 

您可以通過使用-D標誌與gsutil看到這一點:

gsutil -D setacl public-read gs://bucket/obj 
+0

感謝你! 當前文檔顯示'gsutil acl set public-read gs:// bucket/object'。這是從'setacl'到'acl set'的更新語法? (https://developers.google.com/storage/docs/gsutil/commands/acl#set)預先定義ACL(私人,公共閱讀等)的 –

+0

名單:https://cloud.google.com/存儲/文檔/訪問控制 – ruhong

+0

我嘗試了ACL策略和更新的文件只是恢復到不共享:( – Darian311

42

當你運行:gsutil -m acl set -R -a public-read gs://bucket定義公共讀對於當前存在於存儲桶中的所有對象,但當您上傳新文件時,默認情況下它們不會公開。

我發現什麼是一個值得來定義一個桶默認的ACL公衆閱讀gsutil defacl set public-read gs://bucket

+1

好主意。很不幸,這僅適用於頂級桶和不能在文件夾上一個水桶內使用。該對方的回答工作,甚至在一個文件夾 –

+1

此命令的作用,應該接受的答案 –

+3

'的gsutil defacl設置公共讀GS://!bucket'適用於所有未來的文件包括子目錄中的忽略Plastly格羅夫的評論 – Albin

1

您可以在水桶公共的所有對象。這裏是link

+0

這個傢伙。貌似答案。我只是測試我的桶的權限。我改變了我的形象,重新上傳,並像它之前,必須谷歌存儲沒有搞砸權限我跑這個命令:gsutil會IAM CH ALLUSERS:objectViewer GS:// [BUCKET_NAME。萬一你在領導上作出這樣的事情很容易懷疑亞馬遜還在。哇,太多學習曲線在GS上做同樣的事情。 – Darian311

1

複製和粘貼代表Erik的,這個工作一直對我說:

製作一組對象公開可讀

要在公開可讀水桶中的所有對象:

CONSOLEGSUTILREST APIS使用gsutil iam ch命令,用適當的值替換 [VALUES_IN_BRACKETS]:

gsutil iam ch allUsers:objectViewer gs://[BUCKET_NAME] 
2

電流(月/ 2017年)有關託管文件靜態網站發現here點:

gsutil acl ch -r -u AllUsers:R gs://bucket-name

-r做遞歸伎倆和-u AllUsers:R讓公衆讀訪問。

相關問題