データの一般公開

このページでは、所有するオブジェクトを公開で読めるようにする方法について説明します。公開されたデータへのアクセス方法については、公開データへのアクセスをご覧ください。

個々のオブジェクトを公開する

個々のオブジェクトを公開するには:

Console

  1. Google Cloud Platform Console で Cloud Storage ブラウザを開きます。
    Cloud Storage ブラウザを開く
  2. バケットのリストで、公開するオブジェクトが含まれているバケットの名前をクリックし、そのオブジェクトがサブディレクトリにある場合はそこに移動します。

  3. 公開するオブジェクトに関連付けられているプルダウン メニューをクリックします。

    プルダウン メニューはオブジェクトの行の右側にある 3 個の点が縦に並んだアイコンです。

  4. プルダウン メニューから [権限を編集] を選択します。

  5. 表示されるオーバーレイで、[+ 項目を追加] ボタンをクリックします。

  6. allUsers の権限を追加します。

    • [エンティティ] には [ユーザー] を選択します。
    • [名前] には「allUsers」と入力します。
    • [アクセス] には [読み取り] を選択します。
  7. [保存] をクリックします。

公開の状態で共有されると、[公開アクセス] 列にリンクアイコンが表示されます。このアイコンをクリックすると、オブジェクトの URL を取得できます。

gsutil

gsutil acl ch コマンドを使用します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。

gsutil acl ch -u AllUsers:R gs://[BUCKET_NAME]/[OBJECT_NAME]

成功した場合は、次の例のようなレスポンスになります。

Updated ACL on gs://[BUCKET_NAME]/[OBJECT_NAME]

コードサンプル

C++

詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。

は、
namespace gcs = google::cloud::storage;
using ::google::cloud::StatusOr;
[](gcs::Client client, std::string bucket_name, std::string object_name) {
  StatusOr<gcs::ObjectMetadata> updated = client.PatchObject(
      bucket_name, object_name, gcs::ObjectMetadataPatchBuilder(),
      gcs::PredefinedAcl::PublicRead());

  if (!updated) {
    throw std::runtime_error(updated.status().message());
  }

  std::cout << "Object updated. The full metadata after the update is: "
            << *updated << "\n";
}

C#

詳細については、Cloud Storage C# API のリファレンス ドキュメントをご覧ください。

private void MakePublic(string bucketName, string objectName)
{
    var storage = StorageClient.Create();
    var storageObject = storage.GetObject(bucketName, objectName);
    storageObject.Acl = storageObject.Acl ?? new List<ObjectAccessControl>();
    storage.UpdateObject(storageObject, new UpdateObjectOptions
    {
        PredefinedAcl = PredefinedObjectAcl.PublicRead
    });
    Console.WriteLine(objectName + " is now public and can be fetched from " +
        storageObject.MediaLink);
}

Go

詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。

acl := client.Bucket(bucket).Object(object).ACL()
if err := acl.Set(ctx, storage.AllUsers, storage.RoleReader); err != nil {
	return err
}

Java

詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。

BlobId blobId = BlobId.of(bucketName, blobName, blobGeneration);
Acl acl = storage.createAcl(blobId, Acl.of(User.ofAllUsers(), Role.READER));

Node.js

詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。

// Imports the Google Cloud client library
const {Storage} = require('@google-cloud/storage');

// Creates a client
const storage = new Storage();

/**
 * TODO(developer): Uncomment the following lines before running the sample.
 */
// const bucketName = 'Name of a bucket, e.g. my-bucket';
// const filename = 'File to make public, e.g. file.txt';

// Makes the file public
await storage
  .bucket(bucketName)
  .file(filename)
  .makePublic();

console.log(`gs://${bucketName}/${filename} is now public.`);

PHP

詳細については、Cloud Storage PHP API のリファレンス ドキュメントをご覧ください。

use Google\Cloud\Storage\StorageClient;

/**
 * Make an object publically accessible.
 *
 * @param string $bucketName the name of your Cloud Storage bucket.
 * @param string $objectName the name of your Cloud Storage object.
 *
 * @return void
 */
function make_public($bucketName, $objectName)
{
    $storage = new StorageClient();
    $bucket = $storage->bucket($bucketName);
    $object = $bucket->object($objectName);
    $object->update(['acl' => []], ['predefinedAcl' => 'PUBLICREAD']);
    printf('gs://%s/%s is now public' . PHP_EOL, $bucketName, $objectName);
}

Python

詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。

def make_blob_public(bucket_name, blob_name):
    """Makes a blob publicly accessible."""
    storage_client = storage.Client()
    bucket = storage_client.get_bucket(bucket_name)
    blob = bucket.blob(blob_name)

    blob.make_public()

    print('Blob {} is publicly accessible at {}'.format(
        blob.name, blob.public_url))

Ruby

詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。

# project_id  = "Your Google Cloud project ID"
# bucket_name = "Your Google Cloud Storage bucket name"
# file_name   = "Name of file in Google Cloud Storage to make public"

require "google/cloud/storage"

storage = Google::Cloud::Storage.new project_id: project_id
bucket  = storage.bucket bucket_name
file    = bucket.file file_name

file.acl.public!

puts "#{file.name} is publicly accessible at #{file.public_url}"

REST API

JSON API

  1. OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
  2. 次の情報が含まれる .json ファイルを作成します。
  3. {
    "entity": "allUsers",
    "role": "READER"
    }
  4. cURL を使用して、JSON APIInsert ACL リクエストで呼び出します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。
    curl -X POST --data-binary @[JSON_FILE_NAME].json \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        -H "Content-Type: application/json" \
        "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]/o/[OBJECT_NAME]/acl"

XML API

  1. OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
  2. 次の情報を含む .xml ファイルを作成します。
  3. <AccessControlList>
    <Entries>
        <Entry>
          <Scope type="AllUsers"/>
          <Permission>READ</Permission>
        </Entry>
    </Entries>
    </AccessControlList>
    
  4. cURL を使用して、XML APISet Object ACL リクエストで呼び出します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。
    curl -X PUT --data-binary @[XML_FILE_NAME].xml \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://storage.googleapis.com/[BUCKET_NAME]/[OBJECT_NAME]?acl"

オブジェクトのグループを公開する

バケット内のすべてのオブジェクトを公開するには:

Console

  1. Google Cloud Platform Console で Cloud Storage ブラウザを開きます。
    Cloud Storage ブラウザを開く
  2. バケットのリストで、公開するバケットの名前をクリックします。

  3. ページ上部にある [権限] タブを選択します。

  4. [メンバーを追加] ボタンをクリックします。

    [メンバーを追加] ダイアログ ボックスが表示されます。

  5. [メンバー] フィールドに「allUsers」と入力します。

  6. [役割] プルダウン メニューで [ストレージ] サブメニューを選択し、[ストレージ オブジェクト閲覧者] オプションをクリックします。

  7. [追加] をクリックします。

公開の状態で共有されると、[公開アクセス] 列に各オブジェクトのリンクアイコンが表示されます。このアイコンをクリックすると、オブジェクトの URL を取得できます。

gsutil

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

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

REST API

JSON API

  1. OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
  2. 次の情報が含まれる .json ファイルを作成します。
  3. {
      "bindings":[
        {
          "role": "roles/storage.objectViewer",
          "members":["allUsers"]
        }
      ]
    }
  4. cURL を使用して、JSON APIPUT setIamPolicy リクエストで呼び出します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。
    curl -X PUT --data-binary @[JSON_FILE_NAME].json \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        -H "Content-Type: application/json" \
        "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]/iam"

XML API

バケット内のすべてのオブジェクトを公開する場合、XML API は使用できません。gsutil または JSON API を使用してください。

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。