요청자 지불 사용

개요

이 페이지에서는 요청자 지불이 버킷에 사용 설정되었는지 확인하는 방법은 물론 요청자 지불을 사용 설정하고 사용 중지하는 방법을 설명합니다.

필요한 역할

요청자 지불을 설정 및 관리하는 데 필요한 권한을 얻으려면 관리자에게 버킷이 포함된 프로젝트에 대해 스토리지 관리자(roles.storage.Admin) 역할을 부여해 달라고 요청하세요.

이 역할에는 요청자 지불을 설정 및 관리하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 확장하세요.

필수 권한

  • storage.buckets.get
  • storage.buckets.update
  • resourcemanager.projects.createBillingAssignment
    • 이 권한은 요청자 지불을 사용 중지할 때 사용할 결제 계정이 없는 경우에만 필요합니다. 자세한 내용은 사용 및 액세스 요구사항을 참조하세요.

다른 사전 정의된 역할이나 커스텀 역할을 사용하여 이 권한을 부여받을 수도 있습니다.

프로젝트에 대한 역할 부여에 대해서는 역할 부여 또는 취소를 참조하세요.

요청자 지불 설정

버킷에서 요청자 지불을 사용 설정 또는 사용 중지하려면 다음 안내를 따르세요.

콘솔

  1. Google Cloud 콘솔에서 Cloud Storage 버킷 페이지로 이동합니다.

    버킷으로 이동

  2. 버킷 목록에서 설정하려는 버킷을 찾고 요청자 지불 열을 찾습니다.

    열의 값은 해당 버킷에 대한 요청자 지불의 현재 상태를 나타냅니다.

  3. 버킷에 대해 요청자 지불의 현재 상태를 클릭합니다.

  4. 표시된 창에서 요청자 지불에 대해 설정하려는 상태에 따라 사용 설정 또는 사용 중지를 클릭합니다.

사용 설정되면 버킷의 요청자 지불 열에 녹색 풍선과 켜기가 나타납니다. 사용 중지되면 열에 회색 풍선과 끄기가 나타납니다.

Google Cloud 콘솔에서 실패한 Cloud Storage 작업에 대한 자세한 오류 정보를 가져오는 방법은 문제 해결을 참조하세요.

명령줄

gcloud storage buckets update 명령어를 적절한 플래그와 함께 사용합니다.

gcloud storage buckets update gs://BUCKET_NAME FLAG

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

  • BUCKET_NAME: 관련 버킷의 이름. 예를 들면 my-bucket입니다.

  • FLAG--requester-pays이면 요청자 지불을 사용 설정하고 --no-requester-pays이면 사용 중지합니다.

성공하면 다음 예시와 비슷한 응답이 표시됩니다.

Updating gs://my-bucket/...
  Completed 1  

클라이언트 라이브러리

C++

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

Cloud Storage에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.

다음 샘플은 버킷에서 요청자 지불을 사용 설정합니다.

namespace gcs = ::google::cloud::storage;
using ::google::cloud::StatusOr;
[](gcs::Client client, std::string const& bucket_name) {
  StatusOr<gcs::BucketMetadata> metadata = client.PatchBucket(
      bucket_name,
      gcs::BucketMetadataPatchBuilder().SetBilling(gcs::BucketBilling{true}));
  if (!metadata) throw std::move(metadata).status();

  std::cout << "Billing configuration for bucket " << metadata->name()
            << " is updated. The bucket now";
  if (!metadata->has_billing()) {
    std::cout << " has no billing configuration.\n";
  } else if (metadata->billing().requester_pays) {
    std::cout << " is configured to charge the caller for requests\n";
  } else {
    std::cout << " is configured to charge the project that owns the bucket"
              << " for requests.\n";
  }
}

다음 샘플은 버킷에서 요청자 지불을 사용 중지합니다.

namespace gcs = ::google::cloud::storage;
using ::google::cloud::StatusOr;
[](gcs::Client client, std::string const& bucket_name,
   std::string const& billed_project) {
  StatusOr<gcs::BucketMetadata> metadata = client.PatchBucket(
      bucket_name,
      gcs::BucketMetadataPatchBuilder().SetBilling(gcs::BucketBilling{false}),
      gcs::UserProject(billed_project));
  if (!metadata) throw std::move(metadata).status();

  std::cout << "Billing configuration for bucket " << bucket_name
            << " is updated. The bucket now";
  if (!metadata->has_billing()) {
    std::cout << " has no billing configuration.\n";
  } else if (metadata->billing().requester_pays) {
    std::cout << " is configured to charge the caller for requests\n";
  } else {
    std::cout << " is configured to charge the project that owns the bucket"
              << " for requests.\n";
  }
}

C#

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

Cloud Storage에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.

다음 샘플은 버킷에서 요청자 지불을 사용 설정합니다.


using Google.Apis.Storage.v1.Data;
using Google.Cloud.Storage.V1;
using System;

public class EnableRequesterPaysSample
{
    public Bucket EnableRequesterPays(string bucketName = "your-unique-bucket-name")
    {
        var storage = StorageClient.Create();
        var bucket = storage.GetBucket(bucketName);
        bucket.Billing ??= new Bucket.BillingData();
        bucket.Billing.RequesterPays = true;
        bucket = storage.UpdateBucket(bucket);
        Console.WriteLine($"Requester pays requests have been enabled for bucket {bucketName}.");
        return bucket;
    }
}

다음 샘플은 버킷에서 요청자 지불을 사용 중지합니다.


using Google.Apis.Storage.v1.Data;
using Google.Cloud.Storage.V1;
using System;

public class DisableRequesterPaysSample
{
    public Bucket DisableRequesterPays(
        string projectId = "your-project-id",
        string bucketName = "your-unique-bucket-name")
    {
        var storage = StorageClient.Create();
        var bucket = storage.GetBucket(bucketName, new GetBucketOptions
        {
            UserProject = projectId
        });

        bucket.Billing ??= new Bucket.BillingData();
        bucket.Billing.RequesterPays = false;

        bucket = storage.UpdateBucket(bucket, new UpdateBucketOptions
        {
            UserProject = projectId
        });
        Console.WriteLine($"Requester pays disabled for bucket {bucketName}.");
        return bucket;
    }
}

Go

자세한 내용은 Cloud Storage