Google Cloud Storageに1000個のファイルを公開するか、一般にディレクトリ階層を作成します。
Web UIでは、一度に1つしか公開できないように見えます。
これを行う方法はありますか。
実行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
実行すると:gsutil -m acl set -R -a public-read gs://bucket
現在バケット内にあるすべてのオブジェクトに対してパブリック読み取りを定義しますが、新しいファイルをアップロードすると、デフォルトではパブリックになりません。
私が見つけたのは、バケットのデフォルトACLをpublic-read gsutil defacl set public-read gs://bucket
バケット内のすべてのオブジェクトを公開できます。 リンク です。
- Google Cloud Platform ConsoleでCloud Storageブラウザを開きます。
- バケットのリストで、公開するバケットの名前をクリックします。
- ページの上部にある[権限]タブを選択します。
- [メンバーを追加]ボタンをクリックします。
メンバーの追加ダイアログボックスが表示されます。- 「メンバー」フィールドに、allUsersと入力します。
- [役割]ドロップダウンで、[ストレージ]サブメニューを選択し、[ストレージオブジェクトビューアー]オプションをクリックします。
- 追加をクリックします。
パブリックに共有されると、パブリックアクセス列のオブジェクトごとにリンクアイコンが表示されます。このアイコンをクリックして、オブジェクトのURLを取得できます。
静的Webサイトのホスティングに関する現在(2017年10月)のドキュメントが見つかりました こちら のポイント:
gsutil acl ch -r -u AllUsers:R gs://bucket-name
どこ -r
は再帰的なトリックを行い、-u AllUsers:R
は、パブリック読み取りアクセスを許可します。
エリックの代わりにコピーして貼り付けるために、これは私にとって一貫して機能しました:
オブジェクトのグループを一般に読み取り可能にする
バケット内のすべてのオブジェクトを一般に読み取り可能にするには:
CONSOLEGSUTILREST APIS [VALUES_IN_BRACKETS]を適切な値に置き換えて、gsutil iam chコマンドを使用します。
gsutil iam ch allUsers:objectViewer gs://[BUCKET_NAME]