Google Cloud Storage 기능 이해

버킷, 객체, ACL

버킷은 파일을 읽어오거나 쓸 수 있는 스토리지 위치입니다. Cloud Storage의 App Engine 클라이언트 라이브러리를 사용할 때는 버킷을 항상 지정해야 합니다. 프로젝트는 여러 버킷에 액세스할 수 있습니다. 참고로, 클라이언트 라이브러리는 버킷 만들기를 지원하지 않습니다.

액세스 제어 목록(ACL)은 버킷 및 버킷에 포함된 객체에 대한 액세스를 제어합니다. 프로젝트에 버킷을 만들면 버킷 액세스를 허용하는 ACL에 해당 프로젝트 및 App Engine 앱이 자동으로 추가됩니다.

버킷 액세스를 허용하는 ACL은 해당 버킷에 있는 객체를 제어하는 여러 ACL과는 완전히 다릅니다. 이처럼 앱은 활성화된 버킷에 대해서는 읽기 및 쓰기 권한을 갖지만, 객체의 경우 버킷에서 앱이 생성한 것에 한해서만 전체 권한을 갖습니다. 다른 앱 또는 다른 사람이 만든 객체에 대한 사용자 앱의 액세스 권한은 해당 객체의 생성자가 사용자의 앱에 부여한 권한으로 제한됩니다.

ACL을 명시적으로 정의하지 않고 버킷에서 객체를 만든 경우 버킷 소유자가 버킷에 할당한 기본 객체 ACL이 사용됩니다. 버킷 소유자가 기본 객체 ACL을 지정하지 않은 경우 객체 기본값이 public-read로 설정되어 버킷 액세스 권한이 있는 모든 사용자가 객체를 읽을 수 있습니다.

ACL 및 클라이언트 라이브러리

클라이언트 라이브러리를 사용하는 앱은 버킷 ACL을 변경할 수 있으며, 생성되는 객체에 대한 액세스 권한을 제어하는 ACL을 지정할 수도 있습니다. 사용 가능한 ACL 설정은 storage API 문서에 설명되어 있습니다.

Cloud Storage 객체 수정

버킷에서 객체를 만든 다음에는 객체를 수정하거나 객체에 추가할 수 없습니다. 그 대신 원하는 변경사항이 포함된 객체를 동일한 이름으로 새로 만들어 해당 객체를 덮어써야 합니다.

Cloud Storage 및 하위 디렉터리

Cloud Storage용 App Engine 클라이언트 라이브러리를 사용하면 객체를 만들 때 하위 디렉터리 구분 기호를 사용할 수 있지만, Cloud Storage에는 실제 하위 디렉터리가 없습니다. Cloud Storage의 하위 디렉터리는 객체 파일 이름의 일부입니다.

예를 들어 somewhere/over/the/rainbow.mp3 객체를 만들면 rainbow.mp3 파일이 하위 디렉터리 somewhere/over/the/에 저장된다고 가정할 수 있습니다. 대신 객체 이름은 somewhere/over/the/rainbow.mp3로 설정됩니다.

다음 단계