web-dev-qa-db-ja.com

Google Cloud Storageで多くのファイルを公開するにはどうすればよいですか?

Google Cloud Storageに1000個のファイルを公開するか、一般にディレクトリ階層を作成します。

Web UIでは、一度に1つしか公開できないように見えます。

これを行う方法はありますか。

58
engineerchuan

実行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
89
fejta

実行すると:gsutil -m acl set -R -a public-read gs://bucket現在バケット内にあるすべてのオブジェクトに対してパブリック読み取りを定義しますが、新しいファイルをアップロードすると、デフォルトではパブリックになりません。

私が見つけたのは、バケットのデフォルトACLをpublic-read gsutil defacl set public-read gs://bucket

53
unaiherran

バケット内のすべてのオブジェクトを公開できます。 リンク です。

  1. Google Cloud Platform ConsoleでCloud Storageブラウザを開きます。
  2. バケットのリストで、公開するバケットの名前をクリックします。
  3. ページの上部にある[権限]タブを選択します。
  4. [メンバーを追加]ボタンをクリックします。
    メンバーの追加ダイアログボックスが表示されます。
  5. 「メンバー」フィールドに、allUsersと入力します。
  6. [役割]ドロップダウンで、[ストレージ]サブメニューを選択し、[ストレージオブジェクトビューアー]オプションをクリックします。
  7. 追加をクリックします。

パブリックに共有されると、パブリックアクセス列のオブジェクトごとにリンクアイコンが表示されます。このアイコンをクリックして、オブジェクトのURLを取得できます。

20
Erik

静的Webサイトのホスティングに関する現在(2017年10月)のドキュメントが見つかりました こちら のポイント:

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

どこ -rは再帰的なトリックを行い、-u AllUsers:Rは、パブリック読み取りアクセスを許可します。

7
MarcoSantana

これを実現する最も簡単な方法は、コンソールを使用することです。

[バケットの権限を編集]をクリックします

enter image description here

[メンバーの追加]にallUsersと入力します。その後、Select Role> Storage> Storage Object Viewer

注意!これにより、選択したバケット内のすべてのオブジェクトに対して、インターネット上のすべてのユーザーに読み取り権限が付与されます。

enter image description here

5
Anand Kapdi

エリックの代わりにコピーして貼り付けるために、これは私にとって一貫して機能しました:

オブジェクトのグループを一般に読み取り可能にする

バケット内のすべてのオブジェクトを一般に読み取り可能にするには:

CONSOLEGSUTILREST APIS [VALUES_IN_BRACKETS]を適切な値に置き換えて、gsutil iam chコマンドを使用します。

 gsutil iam ch allUsers:objectViewer gs://[BUCKET_NAME]
1
Darian311