オブジェクトのアップロード、ダウンロード、削除

このページでは、オブジェクトをバケットにアップロードする方法、オブジェクトをバケットからダウンロードする方法、またはオブジェクトをバケットから削除する方法など、Google Cloud Storage でオブジェクトに対して行う基本的な操作方法について説明します。オブジェクトの概要については、主な用語オブジェクトの命名要件をご覧ください。

オブジェクトのアップロード

オブジェクトをいずれかの Cloud Storage バケットにアップロードするには:

Console

  1. Google API Console で Cloud Storage ブラウザを開きます。
    Cloud Storage ブラウザを開く

  2. バケットのリストで、オブジェクトのアップロード先のバケットをクリックします。

  3. コンソールの上部にある [ファイルをアップロード] または [フォルダをアップロード] をクリックします。

  4. 表示されたダイアログで、バケットのアップロード先のファイルまたはフォルダを選択します。

  5. [開く] をクリックします。

gsutil

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

gsutil cp [LOCAL_OBJECT_LOCATION] gs://[DESTINATION_BUCKET_NAME]/

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

Operation completed over 1 objects/58.8 KiB.

クライアント ライブラリ

C#

Cloud Storage クライアントのインストールと作成の詳細については、Cloud Storage クライアント ライブラリをご覧ください。

private void UploadFile(string bucketName, string localPath,
    string objectName = null)
{
    var storage = StorageClient.Create();
    using (var f = File.OpenRead(localPath))
    {
        objectName = objectName ?? Path.GetFileName(localPath);
        storage.UploadObject(bucketName, objectName, null, f);
        Console.WriteLine($"Uploaded {objectName}.");
    }
}

Go

Cloud Storage クライアントのインストールと作成の詳細については、Cloud Storage クライアント ライブラリをご覧ください。

f, err := os.Open("notes.txt")
if err != nil {
	return err
}
defer f.Close()

wc := client.Bucket(bucket).Object(object).NewWriter(ctx)
if _, err = io.Copy(wc, f); err != nil {
	return err
}
if err := wc.Close(); err != nil {
	return err
}

Java

Cloud Storage クライアントのインストールと作成の詳細については、Cloud Storage クライアント ライブラリをご覧ください。

InputStream content = new ByteArrayInputStream("Hello, World!".getBytes(UTF_8));
Blob blob = bucket.create(blobName, content, "text/plain");

Node.js

Cloud Storage クライアントのインストールと作成の詳細については、Cloud Storage クライアント ライブラリをご覧ください。

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

// The name of the bucket to access, e.g. "my-bucket"
// const bucketName = "my-bucket";

// The name of the local file to upload, e.g. "./local/path/to/file.txt"
// const filename = "./local/path/to/file.txt";

// Instantiates a client
const storage = Storage();

// Uploads a local file to the bucket
storage
  .bucket(bucketName)
  .upload(filename)
  .then(() => {
    console.log(`${filename} uploaded to ${bucketName}.`);
  })
  .catch((err) => {
    console.error('ERROR:', err);
  });

PHP

Cloud Storage クライアントのインストールと作成の詳細については、Cloud Storage クライアント ライブラリをご覧ください。

use Google\Cloud\Storage\StorageClient;

/**
 * Upload a file.
 *
 * @param string $bucketName the name of your Google Cloud bucket.
 * @param string $objectName the name of the object.
 * @param string $source the path to the file to upload.
 *
 * @return Psr\Http\Message\StreamInterface
 */
function upload_object($bucketName, $objectName, $source)
{
    $storage = new StorageClient();
    $file = fopen($source, 'r');
    $bucket = $storage->bucket($bucketName);
    $object = $bucket->upload($file, [
        'name' => $objectName
    ]);
    printf('Uploaded %s to gs://%s/%s' . PHP_EOL, basename($source), $bucketName, $objectName);
}

Python

Cloud Storage クライアントのインストールと作成の詳細については、Cloud Storage クライアント ライブラリをご覧ください。

def upload_blob(bucket_name, source_file_name, destination_blob_name):
    """Uploads a file to the bucket."""
    storage_client = storage.Client()
    bucket = storage_client.get_bucket(bucket_name)
    blob = bucket.blob(destination_blob_name)

    blob.upload_from_filename(source_file_name)

    print('File {} uploaded to {}.'.format(
        source_file_name,
        destination_blob_name))

Ruby

Cloud Storage クライアントのインストールと作成の詳細については、Cloud Storage クライアント ライブラリをご覧ください。

# project_id        = "Your Google Cloud project ID"
# bucket_name       = "Your Google Cloud Storage bucket name"
# local_file_path   = "Path to local file to upload"
# storage_file_path = "Path to store the file in Google Cloud Storage"

require "google/cloud/storage"

storage = Google::Cloud::Storage.new project: project_id
bucket  = storage.bucket bucket_name

file = bucket.create_file local_file_path, storage_file_path

puts "Uploaded #{file.name}"

REST API

JSON API

  1. OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を設定します。
  2. オブジェクトのデータをリクエストの本文に追加します。
  3. cURL を使用して、JSON APIPOST オブジェクト リクエストで呼び出します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。
    curl -X POST --data-binary @[OBJECT] \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        -H "Content-Type: [OBJECT_CONTENT_TYPE]" \
        "https://www.googleapis.com/upload/storage/v1/b/[BUCKET_NAME]/o?uploadType=media&name=[OBJECT_NAME]"

JSON API を使用したオブジェクトのアップロードの詳細は、単純なアップロードの実行をご覧ください。

XML API

  1. OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を設定します。
  2. オブジェクトのデータをリクエストの本文に追加します。
  3. cURL を使用して、XML APIPUT オブジェクト リクエストで呼び出します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。
    curl -X PUT --data-binary @[OBJECT] \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        -H "Content-Type: [OBJECT_CONTENT_TYPE]" \
        "https://storage.googleapis.com/[BUCKET_NAME]/[OBJECT_NAME]"

オブジェクトのダウンロード

オブジェクトをいずれかの Cloud Storage バケットからダウンロードするには:

Console

  1. Google API Console で Cloud Storage ブラウザを開きます。
    Cloud Storage ブラウザを開く

  2. バケットのリストで、ダウンロードするオブジェクトが含まれているバケットをクリックし、そのオブジェクトに移動します。

  3. ダウンロードするオブジェクトを右クリックします。

  4. オブジェクトを任意のローカル フォルダに保存します。

    Chrome では、[保存] オプションは [名前を付けてリンク先を保存] と表示されます。

gsutil

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

gsutil cp gs://[BUCKET_NAME]/[OBJECT_NAME] [OBJECT_DESTINATION]

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

Operation completed over 1 objects/58.8 KiB.

クライアント ライブラリ

C#

Cloud Storage クライアントのインストールと作成の詳細については、Cloud Storage クライアント ライブラリをご覧ください。

private void DownloadObject(string bucketName, string objectName,
    string localPath = null)
{
    var storage = StorageClient.Create();
    localPath = localPath ?? Path.GetFileName(objectName);
    using (var outputFile = File.OpenWrite(localPath))
    {
        storage.DownloadObject(bucketName, objectName, outputFile);
    }
    Console.WriteLine($"downloaded {objectName} to {localPath}.");
}

Go

Cloud Storage クライアントのインストールと作成の詳細については、Cloud Storage クライアント ライブラリをご覧ください。

rc, err := client.Bucket(bucket).Object(object).NewReader(ctx)
if err != nil {
	return nil, err
}
defer rc.Close()

data, err := ioutil.ReadAll(rc)
if err != nil {
	return nil, err
}
return data, nil

Java

Cloud Storage クライアントのインストールと作成の詳細については、Cloud Storage クライアント ライブラリをご覧ください。

private void run(Storage storage, BlobId blobId, Path downloadTo) throws IOException {
  Blob blob = storage.get(blobId);
  if (blob == null) {
    System.out.println("No such object");
    return;
  }
  PrintStream writeTo = System.out;
  if (downloadTo != null) {
    writeTo = new PrintStream(new FileOutputStream(downloadTo.toFile()));
  }
  if (blob.getSize() < 1_000_000) {
    // Blob is small read all its content in one request
    byte[] content = blob.getContent();
    writeTo.write(content);
  } else {
    // When Blob size is big or unknown use the blob's channel reader.
    try (ReadChannel reader = blob.reader()) {
      WritableByteChannel channel = Channels.newChannel(writeTo);
      ByteBuffer bytes = ByteBuffer.allocate(64 * 1024);
      while (reader.read(bytes) > 0) {
        bytes.flip();
        channel.write(bytes);
        bytes.clear();
      }
    }
  }
  if (downloadTo == null) {
    writeTo.println();
  } else {
    writeTo.close();
  }
}

Node.js

Cloud Storage クライアントのインストールと作成の詳細については、Cloud Storage クライアント ライブラリをご覧ください。

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

// The name of the bucket to access, e.g. "my-bucket"
// const bucketName = "my-bucket";

// The name of the remote file to download, e.g. "file.txt"
// const srcFilename = "file.txt";

// The path to which the file should be downloaded, e.g. "./local/path/to/file.txt"
// const destFilename = "./local/path/to/file.txt";

// Instantiates a client
const storage = Storage();

const options = {
  // The path to which the file should be downloaded, e.g. "./file.txt"
  destination: destFilename
};

// Downloads the file
storage
  .bucket(bucketName)
  .file(srcFilename)
  .download(options)
  .then(() => {
    console.log(`gs://${bucketName}/${srcFilename} downloaded to ${destFilename}.`);
  })
  .catch((err) => {
    console.error('ERROR:', err);
  });

PHP

Cloud Storage クライアントのインストールと作成の詳細については、Cloud Storage クライアント ライブラリをご覧ください。

use Google\Cloud\Storage\StorageClient;

/**
 * Download an object from Cloud Storage and save it as a local file.
 *
 * @param string $bucketName the name of your Google Cloud bucket.
 * @param string $objectName the name of your Google Cloud object.
 * @param string $destination the local destination to save the encrypted object.
 *
 * @return void
 */
function download_object($bucketName, $objectName, $destination)
{
    $storage = new StorageClient();
    $bucket = $storage->bucket($bucketName);
    $object = $bucket->object($objectName);
    $object->downloadToFile($destination);
    printf('Downloaded gs://%s/%s to %s' . PHP_EOL,
        $bucketName, $objectName, basename($destination));
}

Python

Cloud Storage クライアントのインストールと作成の詳細については、Cloud Storage クライアント ライブラリをご覧ください。

def download_blob(bucket_name, source_blob_name, destination_file_name):
    """Downloads a blob from the bucket."""
    storage_client = storage.Client()
    bucket = storage_client.get_bucket(bucket_name)
    blob = bucket.blob(source_blob_name)

    blob.download_to_filename(destination_file_name)

    print('Blob {} downloaded to {}.'.format(
        source_blob_name,
        destination_file_name))

Ruby

Cloud Storage クライアントのインストールと作成の詳細については、Cloud Storage クライアント ライブラリをご覧ください。

# 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 download locally"
# local_path  = "Path to local file to save"

require "google/cloud/storage"

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

file.download local_path

puts "Downloaded #{file.name}"

REST API

JSON API

  1. OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を設定します。
  2. cURL を使用して、JSON APIGET オブジェクト リクエストで呼び出します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。
    curl -X GET \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        -o "[SAVE_TO_LOCATION]" \
        "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]/o/[OBJECT_NAME]?alt=media"

XML API

  1. OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を設定します。
  2. cURL を使用して、XML APIGET オブジェクト リクエストで呼び出します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。
    curl -X GET \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        -o "[SAVE_TO_LOCATION]" \
        "https://storage.googleapis.com/[BUCKET_NAME]/[OBJECT_NAME]"

オブジェクトの削除

オブジェクトをいずれかの Cloud Storage バケットから削除するには:

Console

  1. Google API Console で Cloud Storage ブラウザを開きます。
    Cloud Storage ブラウザを開く

  2. バケットのリストで、削除するオブジェクトが含まれているバケットをクリックし、そのオブジェクトに移動します。

  3. 削除するオブジェクトの横のチェックボックスをクリックします。

  4. コンソールの上部にある [削除] をクリックします。

  5. 表示されたダイアログで [OK] をクリックします。

gsutil

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

gsutil rm gs://[BUCKET_NAME]/[OBJECT_NAME]

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

Operation completed over 1 objects.

クライアント ライブラリ

C#

Cloud Storage クライアントのインストールと作成の詳細については、Cloud Storage クライアント ライブラリをご覧ください。

private void DeleteObject(string bucketName, IEnumerable<string> objectNames)
{
    var storage = StorageClient.Create();
    foreach (string objectName in objectNames)
    {
        storage.DeleteObject(bucketName, objectName);
        Console.WriteLine($"Deleted {objectName}.");
    }
}

Go

Cloud Storage クライアントのインストールと作成の詳細については、Cloud Storage クライアント ライブラリをご覧ください。

o := client.Bucket(bucket).Object(object)
if err := o.Delete(ctx); err != nil {
	return err
}

Java

Cloud Storage クライアントのインストールと作成の詳細については、Cloud Storage クライアント ライブラリをご覧ください。

BlobId blobId = BlobId.of(bucketName, blobName);
boolean deleted = storage.delete(blobId);
if (deleted) {
  // the blob was deleted
} else {
  // the blob was not found
}

Node.js

Cloud Storage クライアントのインストールと作成の詳細については、Cloud Storage クライアント ライブラリをご覧ください。

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

// The name of the bucket to access, e.g. "my-bucket"
// const bucketName = "my-bucket";

// The name of the file to delete, e.g. "file.txt"
// const filename = "file.txt";

// Instantiates a client
const storage = Storage();

// Deletes the file from the bucket
storage
  .bucket(bucketName)
  .file(filename)
  .delete()
  .then(() => {
    console.log(`gs://${bucketName}/${filename} deleted.`);
  })
  .catch((err) => {
    console.error('ERROR:', err);
  });

PHP

Cloud Storage クライアントのインストールと作成の詳細については、Cloud Storage クライアント ライブラリをご覧ください。

use Google\Cloud\Storage\StorageClient;

/**
 * Delete an object.
 *
 * @param string $bucketName the name of your Cloud Storage bucket.
 * @param string $objectName the name of your Cloud Storage object.
 * @param array $options
 *
 * @return void
 */
function delete_object($bucketName, $objectName, $options = [])
{
    $storage = new StorageClient();
    $bucket = $storage->bucket($bucketName);
    $object = $bucket->object($objectName);
    $object->delete();
    printf('Deleted gs://%s/%s' . PHP_EOL, $bucketName, $objectName);
}

Python

Cloud Storage クライアントのインストールと作成の詳細については、Cloud Storage クライアント ライブラリをご覧ください。

def delete_blob(bucket_name, blob_name):
    """Deletes a blob from the bucket."""
    storage_client = storage.Client()
    bucket = storage_client.get_bucket(bucket_name)
    blob = bucket.blob(blob_name)

    blob.delete()

    print('Blob {} deleted.'.format(blob_name))

Ruby

Cloud Storage クライアントのインストールと作成の詳細については、Cloud Storage クライアント ライブラリをご覧ください。

# 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 delete"

require "google/cloud/storage"

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

file.delete

puts "Deleted #{file.name}"

REST API

JSON API

  1. OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を設定します。
  2. cURL を使用して、JSON APIDELETE オブジェクト リクエストで呼び出します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。
    curl -X DELETE \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]/o/[OBJECT_NAME]"

XML API

  1. OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を設定します。
  2. cURL を使用して、XML APIDELETE オブジェクト リクエストで呼び出します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。
    curl -X DELETE \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://storage.googleapis.com/[BUCKET_NAME]/[OBJECT_NAME]"

外出先でもリソースをモニタリング

Google Cloud Console アプリを入手して、プロジェクトの管理にお役立てください。

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

Cloud Storage ドキュメント