이 페이지는 Cloud Storage에 액세스하는 데 사용할 수 있는 여러 가지 요청 엔드포인트를 설명합니다. Cloud Storage는 HTTP/1.1, HTTP/2, HTTP/3 프로토콜을 지원합니다. 엔드포인트는 URL로 작성된 Cloud Storage에 액세스할 수 있는 위치입니다.
일반적인 API 요청
JSON API
Cloud Storage에 직접 JSON API 요청을 수행할 때는 다음 엔드포인트를 사용합니다.
객체 업로드를 제외한 일반적인 JSON API 요청의 경우, 다음 엔드포인트를 사용합니다. 여기에서
PATH_TO_RESOURCE
를 적절한 값으로 바꿉니다.https://storage.googleapis.com/storage/v1/PATH_TO_RESOURCE
JSON API 객체 업로드에는 다음 엔드포인트를 사용합니다. 여기에서
BUCKET_NAME
를 적절한 값으로 바꿉니다.https://storage.googleapis.com/upload/storage/v1/b/BUCKET_NAME/o
일괄 요청의 경우, 다음 엔드포인트를 사용하고
PATH_TO_RESOURCE
를 적절한 값으로 바꿉니다.https://storage.googleapis.com/batch/storage/v1/PATH_TO_RESOURCE
JSON API 객체 다운로드의 경우 필요에 따라 다음 엔드포인트를 사용할 수 있습니다. 여기에서
BUCKET_NAME
및OBJECT_NAME
은 적절한 값으로 바꿉니다.https://storage.googleapis.com/download/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME?alt=media
JSON API 엔드포인트는 HTTPS 요청만 수용합니다.
XML API
Cloud Storage에 직접 XML API 요청을 수행할 때는 가상 호스팅 스타일 또는 경로 스타일의 엔드포인트를 사용하면서 BUCKET_NAME
및 OBJECT_NAME
을 적절한 값으로 바꿉니다.
가상 호스팅 스타일 엔드포인트:
https://BUCKET_NAME.storage.googleapis.com/OBJECT_NAME
경로 스타일 엔드포인트:
https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME
XML API 엔드포인트는 보안 소켓 레이어(SSL) 암호화를 지원하므로 HTTP 또는 HTTPS를 사용할 수 있습니다. 특히 OAuth 2.0을 사용하여 Cloud Storage에 authenticate한다면 HTTPS를 사용하는 것이 좋습니다.
프록시를 통해 연결할 때의 권장 사례에 대한 문제해결 주제를 참조하세요.
URL 경로 부분 인코딩
버킷 이름 지정 및 객체 이름 지정에 대한 일반적인 고려사항 외에도, Cloud Storage 도구 간의 호환성을 보장하기 위해 다음 문자가 요청 URL의 객체 이름 또는 쿼리 문자열에 표시되는 경우 이를 인코딩해야 합니다.
!
, #
, $
, &
, '
, (
, )
, *
, +
, ,
, /
, :
, ;
, =
, ?
, @
, [
, ]
, 공백 문자
예를 들어 example-bucket
버킷에서 foo??bar
라는 객체에 JSON API GET
요청을 보내려면 요청 URL은 다음과 같아야 합니다.
GET https://storage.googleapis.com/storage/v1/b/example-bucket/o/foo%3f%3fbar
나열된 문자 중 일부는 모든 시나리오에서 인코딩되지 않아야 합니다. 또한 일반적으로 Cloud Storage 클라이언트 라이브러리와 같은 클라이언트 라이브러리를 통해 인코딩이 처리되므로, 이러한 도구를 사용할 때 원시 객체 이름을 전달할 수 있습니다.
백분율 인코딩 사용에 대한 자세한 내용은 RFC 3986의 섹션 3.3 경로를 참조하세요.
Google Cloud 콘솔 엔드포인트
Google Cloud 콘솔을 사용할 때 다음 URL을 사용하여 다른 리소스에 액세스합니다.
리소스 | URL |
---|---|
프로젝트의 버킷 목록 | https://console.cloud.google.com/storage/browser?project=PROJECT_ID |
버킷의 객체 목록 | https://console.cloud.google.com/storage/browser/BUCKET_NAME |
객체의 세부정보 | https://console.cloud.google.com/storage/browser/_details/BUCKET_NAME/OBJECT_NAME |
객체의 데이터 | 인증된 브라우저 다운로드를 참조하세요. |
gcloud 엔드포인트
gcloud storage
명령어는 JSON API 엔드포인트를 사용합니다. 엔드포인트 사용량은 gcloud CLI에서 사용자 대신 관리합니다.
클라이언트 라이브러리 엔드포인트
Cloud Storage 클라이언트 라이브러리는 요청 엔드포인트를 자동으로 관리합니다. 선택적으로 요청 엔드포인트를 수동으로 설정할 수 있습니다. 이 옵션은 특정 엔드포인트를 사용해야 하는 경우 또는 로컬 에뮬레이터를 사용하려는 경우와 같은 테스트에 유용할 수 있습니다.
C++
자세한 내용은 Cloud Storage C++ API 참고 문서를 확인하세요.
Cloud Storage에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
C#
자세한 내용은 Cloud Storage C# API 참고 문서를 확인하세요.
Cloud Storage에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Go
자세한 내용은 Cloud Storage Go API 참고 문서를 확인하세요.
Cloud Storage에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Java
자세한 내용은 Cloud Storage Java API 참고 문서를 확인하세요.
Cloud Storage에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Node.js
자세한 내용은 Cloud Storage Node.js API 참고 문서를 확인하세요.
Cloud Storage에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
PHP
자세한 내용은 Cloud Storage PHP API 참고 문서를 확인하세요.
Cloud Storage에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Python
자세한 내용은 Cloud Storage Python API 참고 문서를 확인하세요.
Cloud Storage에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Ruby
자세한 내용은 Cloud Storage Ruby API 참고 문서를 확인하세요.
Cloud Storage에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
커스텀 도메인
자체 도메인을 소유하고 있으면 URI를 Cloud Storage 버킷을 포함한 하나 이상의 Google Cloud 서비스에 매핑할 수 있습니다. 이 Cloud Storage 요청 엔드포인트를 설명하는 데 버킷 바인딩 호스트 이름이라는 용어가 사용됩니다. 커스텀 도메인을 Cloud Storage 버킷에 연결하려면 DNS 레코드에서 A
또는 CNAME
리디렉션을 만듭니다.
A
레코드
커스텀 도메인을 Cloud Storage 버킷에 연결할 때는 일반적으로 A
레코드를 사용해야 합니다.
A
레코드는HTTPS
요청을 지원합니다.A
레코드를 사용하면 단일 호스트 이름에서 들어오는 트래픽을 여러 버킷 및 다른 Google Cloud 서비스로 보낼 수 있습니다.A
레코드는 버킷 이름에 제한을 두지 않습니다.
A
레코드를 사용하는 경우의 단점은 추가 설정 및 추가 Google Cloud 리소스를 사용해야 한다는 점입니다. A
레코드로 커스텀 도메인을 사용하는 방법에 대한 가이드는 부하 분산기 및 SSL 인증서 설정을 참조하세요.
CNAME
레코드
커스텀 도메인을 Cloud Storage 버킷에 연결할 때 CNAME
레코드를 사용할 수 있지만 이렇게 하면 몇 가지 제한사항이 있습니다.
CNAME
레코드는HTTP
요청만 지원합니다.CNAME
레코드는 지정된 호스트 이름의 트래픽을 단일 버킷으로만 전달할 수 있습니다.CNAME
레코드는 호스트 이름 및 연결된 버킷 이름이 일치해야 하며, 버킷 이름 유효성을 검사해야 합니다.CNAME
레코드는mydomain.com
과 같은 최상위 도메인이 아닌www.mydomain.com
과 같은 하위 도메인에만 사용할 수 있습니다.
CNAME
레코드를 사용할 때 CNAME
레코드의 호스트 이름 부분을 다음과 같이 설정해야 합니다.
c.storage.googleapis.com.
예를 들어 도메인이 example.com
이고 고객에게 여행 지도를 제공하고자 한다고 가정해 보겠습니다. Cloud Storage에 travel-maps.example.com
이라는 버킷을 만든 다음 CNAME
의 요청을 Cloud Storage URI로 리디렉션하는 travel-maps.example.com
레코드를 DNS에 만들 수 있습니다. 이렇게 하려면 DNS에 다음 CNAME
레코드를 게시합니다.
NAME TYPE DATA travel-maps CNAME c.storage.googleapis.com.
이렇게 함으로써 고객은 다음 URL을 사용하여 파리 지도에 액세스할 수 있습니다.
http://travel-maps.example.com/paris.jpg
도메인 등록 서비스에는 CNAME
리소스 레코드 추가를 포함하여 도메인을 관리하기 위한 수단이 있어야 합니다. 예를 들어 Cloud DNS를 사용하는 경우 레코드 추가, 수정, 삭제 페이지에서 리소스 레코드 추가에 대한 안내를 확인할 수 있습니다.
인증된 브라우저 다운로드
인증된 브라우저 다운로드는 쿠키 기반 인증을 사용합니다. 쿠키 기반 인증은 사용자에게 신원 확인을 위해 사용자 계정에 로그인할 것을 요청합니다. 지정된 계정에는 객체를 다운로드할 수 있는 적절한 권한이 있어야 합니다. 예를 들어 Identity and Access Management를 사용하여 객체에 대한 액세스를 제어하는 경우 사용자의 계정에 storage.objects.viewer
권한이 있어야 합니다. 이 권한은 스토리지 객체 뷰어 역할에 부여됩니다.
쿠키 기반 인증을 사용하여 객체를 다운로드하려면 다음 URL을 사용하고 BUCKET_NAME
및 OBJECT_NAME
을 적절한 값으로 바꿉니다.
https://storage.cloud.google.com/BUCKET_NAME/OBJECT_NAME
예를 들어 example-maps
버킷에서 london.jpg
이미지를 공유한 경우 URL은 다음과 같습니다.
https://storage.cloud.google.com/example-maps/london.jpg
로그인에 성공하면 요청된 콘텐츠로 리디렉션됩니다. 이 콘텐츠의 URL은 영숫자 시퀀스로 시작하며 /download/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME
문자열을 포함합니다.
인증된 브라우저 다운로드를 수행하려면 HTTPS를 사용해야 합니다. HTTPS에 대한 HTTP 리디렉션을 사용하려고 시도합니다.
공개 객체에 액세스
storage.cloud.google.com
URI에 대한 모든 요청은 인증되어야 합니다. allUsers
에 객체에 액세스할 수 있는 권한이 있는 경우에도 마찬가지입니다. 사용자가 인증 없이 익명으로 액세스할 수 있는 객체를 다운로드할 수 있게 하려면 XML API 경로 스타일 엔드포인트를 사용합니다.
https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME
자세한 내용과 예시는 공개 데이터 액세스를 참조하세요.