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

このページでは、Cloud Storage のバケットからオブジェクトをダウンロードする方法について説明します。オブジェクトの概要については、主な用語をご覧ください。

Console

  1. Google Cloud Console で Cloud Storage ブラウザを開きます。
    Cloud Storage ブラウザを開く
  2. バケットのリストで、ダウンロードするオブジェクトが含まれているバケットの名前をクリックし、そのオブジェクトに移動します。

  3. オブジェクトに関連付けられた [その他の操作] メニュー()をクリックします。

  4. [ダウンロード] を選択します。

gsutil

gsutil cp コマンドを使用します。

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

ここで

  • [BUCKET_NAME] は、ダウンロードするオブジェクトを含むバケットの名前です。たとえば、my-bucket です。

  • [OBJECT_NAME] は、ダウンロードするオブジェクトの名前です。たとえば、pets/dog.png です。

  • [SAVE_TO_LOCATION] は、オブジェクトを保存するローカルパスです。たとえば、Desktop/Images です。

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

Operation completed over 1 objects/58.8 KiB.

コードサンプル

C++

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

namespace gcs = google::cloud::storage;
    [](gcs::Client client, std::string bucket_name, std::string object_name) {
      gcs::ObjectReadStream stream = client.ReadObject(bucket_name, object_name);

      int count = 0;
      std::string line;
      while (std::getline(stream, line, '\n')) {
        ++count;
      }

      std::cout << "The object has " << count << " lines\n";
    }

C#

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

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 Go API のリファレンス ドキュメントをご覧ください。

ctx := context.Background()

    ctx, cancel := context.WithTimeout(ctx, time.Second*50)
    defer cancel()
    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 Java API のリファレンス ドキュメントをご覧ください。

// The name of the bucket to access
    // String bucketName = "my-bucket";

    // The name of the remote file to download
    // String srcFilename = "file.txt";

    // The path to which the file should be downloaded
    // Path destFilePath = Paths.get("/local/path/to/file.txt");

    // Instantiate a Google Cloud Storage client
    Storage storage = StorageOptions.getDefaultInstance().getService();

    // Get specific file from specified bucket
    Blob blob = storage.get(BlobId.of(bucketName, srcFilename));

    // Download file to specified path
    blob.downloadTo(destFilePath);

Node.js

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

/**
     * TODO(developer): Uncomment the following lines before running the sample.
     */
    // const bucketName = 'Name of a bucket, e.g. my-bucket';
    // const srcFilename = 'Remote file to download, e.g. file.txt';
    // const destFilename = 'Local destination for file, e.g. ./local/path/to/file.txt';

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

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

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

      // Downloads the file
      await storage
        .bucket(bucketName)
        .file(srcFilename)
        .download(options);

      console.log(
        `gs://${bucketName}/${srcFilename} downloaded to ${destFilename}.`
      );
    }

    downloadFile().catch(console.error);

PHP

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

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 Python API のリファレンス ドキュメントをご覧ください。

from google.cloud import storage

    def download_blob(bucket_name, source_blob_name, destination_file_name):
        """Downloads a blob from the bucket."""
        # bucket_name = "your-bucket-name"
        # source_blob_name = "storage-object-name"
        # destination_file_name = "local/path/to/file"

        storage_client = storage.Client()

        bucket = storage_client.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 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 download locally"
    # local_path  = "Destination path for downloaded file"

    require "google/cloud/storage"

    storage = Google::Cloud::Storage.new project_id: 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 認証情報を使用するようにプレイグラウンドを構成します。
  2. cURL を使用して GET Object リクエストで JSON API を呼び出します。

    curl -X GET \
          -H "Authorization: Bearer [OAUTH2_TOKEN]" \
          -o "[SAVE_TO_LOCATION]" \
          "https://storage.googleapis.com/storage/v1/b/[BUCKET_NAME]/o/[OBJECT_NAME]?alt=media"

    ここで

    • [OAUTH2_TOKEN] は、手順 1 で生成したアクセス トークンです。
    • [SAVE_TO_LOCATION] は、オブジェクトを保存する場所へのパスです。たとえば、Desktop/dog.png です。
    • [BUCKET_NAME] は、ダウンロードするオブジェクトを含むバケットの名前です。たとえば、my-bucket です。
    • [OBJECT_NAME] は、ダウンロードするオブジェクトの名前です。たとえば、pets/dog.png です。オブジェクト名を安全に URL エンコードする方法については、パスの URI エンコードをご覧ください。

XML API

  1. OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するようにプレイグラウンドを構成します。
  2. cURL を使用して GET Object リクエストで XML API を呼び出します。

    curl -X GET \
          -H "Authorization: Bearer [OAUTH2_TOKEN]" \
          -o "[SAVE_TO_LOCATION]" \
          "https://storage.googleapis.com/[BUCKET_NAME]/[OBJECT_NAME]"

    ここで

    • [OAUTH2_TOKEN] は、手順 1 で生成したアクセス トークンです。
    • [SAVE_TO_LOCATION] は、オブジェクトを保存する場所へのパスです。たとえば、Desktop/dog.png です。
    • [BUCKET_NAME] は、ダウンロードするオブジェクトを含むバケットの名前です。たとえば、my-bucket です。
    • [OBJECT_NAME] は、ダウンロードするオブジェクトの名前です。たとえば、pets/dog.png です。

バケットまたはサブディレクトリ内のすべてのオブジェクトを簡単にダウンロードするには、gsutil cp コマンドを使用します。

次のステップ