객체 업로드하기

이 페이지에서는 Cloud Storage 버킷에 객체를 업로드하는 옵션에 대해 설명합니다. 업로드된 객체는 관련 메타데이터와 저장할 데이터로 구성됩니다. 객체에 대한 개요는 핵심 용어객체 이름 지정 요구사항을 참조하세요.

Console

  1. Google Cloud Platform Console에서 Cloud Storage 브라우저를 엽니다.
    Cloud Storage 브라우저 열기
  2. 버킷 목록에서 객체를 업로드할 버킷의 이름을 클릭합니다.

  3. 버킷의 객체 탭에서 다음 중 하나를 수행합니다.

    • 원하는 파일을 바탕 화면이나 파일 관리자에서 GCP Console의 기본 창으로 드래그 앤 드롭합니다.

    • 파일 업로드 버튼을 클릭하고 나타나는 대화상자에서 업로드할 파일을 선택하고 열기를 클릭합니다.

gsutil

gsutil cp 명령어를 사용합니다.

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

각 항목의 의미는 다음과 같습니다.

  • [OBJECT_LOCATION]은 객체의 로컬 경로입니다. 예를 들면 Desktop/dog.png입니다.

  • [DESTINATION_BUCKET_NAME]은 객체를 업로드할 버킷의 이름입니다. 예를 들면 my-bucket입니다.

성공하면 응답은 다음 예시와 같습니다.

Operation completed over 1 objects/58.8 KiB.

코드 샘플

C++

자세한 내용은 Cloud Storage C++ API 참조 문서를 확인하세요.

namespace gcs = google::cloud::storage;
using ::google::cloud::StatusOr;
[](gcs::Client client, std::string file_name, std::string bucket_name,
   std::string object_name) {
  // Note that the client library automatically computes a hash on the
  // client-side to verify data integrity during transmission.
  StatusOr<gcs::ObjectMetadata> object_metadata = client.UploadFile(
      file_name, bucket_name, object_name, gcs::IfGenerationMatch(0));

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

  std::cout << "Uploaded " << file_name << " to object "
            << object_metadata->name() << " in bucket "
            << object_metadata->bucket()
            << "\nFull metadata: " << *object_metadata << "\n";
}

C#

자세한 내용은 Cloud Storage C# API 참조 문서를 확인하세요.

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 Go API 참조 문서를 확인하세요.

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
}

자바

자세한 내용은 Cloud Storage 자바 API 참조 문서를 확인하세요.

Storage storage = StorageOptions.getDefaultInstance().getService();
BlobId blobId = BlobId.of("bucket", "blob_name");
BlobInfo blobInfo = BlobInfo.newBuilder(blobId).setContentType("text/plain").build();
Blob blob = storage.create(blobInfo, "Hello, Cloud Storage!".getBytes(UTF_8));

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 = 'Local file to upload, e.g. ./local/path/to/file.txt';

// Uploads a local file to the bucket
await storage.bucket(bucketName).upload(filename, {
  // Support for HTTP requests made with `Accept-Encoding: gzip`
  gzip: true,
  // By setting the option `destination`, you can change the name of the
  // object you are uploading to a bucket.
  metadata: {
    // Enable long-lived HTTP caching headers
    // Use only if the contents of the file will never change
    // (If the contents will change, use cacheControl: 'no-cache')
    cacheControl: 'public, max-age=31536000',
  },
});

console.log(`${filename} uploaded to ${bucketName}.`);

PHP

자세한 내용은 Cloud Storage PHP API 참조 문서를 확인하세요.

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 Python API 참조 문서를 확인하세요.

Blob.upload_from_file(), Blob.upload_from_filename() 또는 Blob.upload_from_string() 메서드를 사용하여 객체를 업로드합니다.
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 Ruby API 참조 문서를 확인하세요.

# 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_id: 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. cURL을 사용하여 POST 객체 요청으로 JSON API를 호출합니다.

    curl -X POST --data-binary @[OBJECT_LOCATION] \
    -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]"

    각 항목의 의미는 다음과 같습니다.

    • [OBJECT_LOCATION]은 객체의 로컬 경로입니다. 예를 들면 Desktop/dog.png입니다.
    • [OAUTH2_TOKEN]은 1단계에서 생성한 액세스 토큰입니다.
    • [OBJECT_CONTENT_TYPE]은 객체의 콘텐츠 유형입니다. 예를 들면 image/png입니다.
    • [BUCKET_NAME]은 객체를 업로드할 버킷의 이름입니다. 예를 들면 my-bucket입니다.
    • [OBJECT_NAME]은 객체에 지정하려는 이름입니다. 예를 들면 pets/dog.png입니다.

XML API

  1. OAuth 2.0 Playground에서 승인 액세스 토큰을 가져옵니다. OAuth 사용자 인증 정보를 사용하도록 Playground를 구성합니다.
  2. cURL을 사용하여 PUT 객체 요청으로 XML API를 호출합니다.

    curl -X PUT --data-binary @[OBJECT_LOCATION] \
    -H "Authorization: Bearer [OAUTH2_TOKEN]" \
    -H "Content-Type: [OBJECT_CONTENT_TYPE]" \
    "https://storage.googleapis.com/[BUCKET_NAME]/[OBJECT_NAME]"

    각 항목의 의미는 다음과 같습니다.

    • [OBJECT_LOCATION]은 객체의 로컬 경로입니다. 예를 들면 Desktop/dog.png입니다.
    • [OAUTH2_TOKEN]은 1단계에서 생성한 액세스 토큰입니다.
    • [OBJECT_CONTENT_TYPE]은 객체의 콘텐츠 유형입니다. 예를 들면 image/png입니다.
    • [BUCKET_NAME]은 객체를 업로드할 버킷의 이름입니다. 예를 들면 my-bucket입니다.
    • [OBJECT_NAME]은 객체에 지정하려는 이름입니다. 예를 들면 pets/dog.png입니다.

다음 단계

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

도움이 필요하시나요? 지원 페이지를 방문하세요.