버킷, 객체, ACL
버킷은 파일을 읽어오거나 쓸 수 있는 스토리지 위치입니다. Cloud Storage의 App Engine 클라이언트 라이브러리를 사용할 때는 버킷을 항상 지정해야 합니다. 프로젝트는 여러 버킷에 액세스할 수 있습니다. 참고로, 클라이언트 라이브러리는 버킷 만들기를 지원하지 않습니다.
액세스 제어 목록(ACL)은 버킷 및 버킷에 포함된 객체에 대한 액세스를 제어합니다. 프로젝트에 버킷을 만들면 버킷 액세스를 허용하는 ACL에 해당 프로젝트 및 App Engine 앱이 자동으로 추가됩니다.
버킷 액세스를 허용하는 ACL은 해당 버킷에 있는 객체를 제어하는 여러 ACL과는 완전히 다릅니다. 이처럼 앱은 활성화된 버킷에 대해서는 읽기 및 쓰기 권한을 갖지만, 객체의 경우 버킷에서 앱이 생성한 것에 한해서만 전체 권한을 갖습니다. 다른 앱 또는 다른 사람이 만든 객체에 대한 사용자 앱의 액세스 권한은 해당 객체의 생성자가 사용자의 앱에 부여한 권한으로 제한됩니다.
ACL을 명시적으로 정의하지 않고 버킷에서 객체를 만든 경우 버킷 소유자가 버킷에 할당한 기본 객체 ACL이 사용됩니다. 버킷 소유자가 기본 객체 ACL을 지정하지 않은 경우 객체 기본값이 public-read
로 설정되어 버킷 액세스 권한이 있는 모든 사용자가 객체를 읽을 수 있습니다.
ACL 및 클라이언트 라이브러리
클라이언트 라이브러리를 사용하는 앱은 버킷 ACL을 변경할 수 없지만, 생성되는 객체에 대한 액세스 권한을 제어하는 ACL을 지정할 수 있습니다. 사용 가능한 ACL 설정은 open 메서드 문서에 설명되어 있습니다.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
로 설정됩니다.
listbucket
필터링을 사용하는 경우 이 개념을 반드시 이해하고 있어야 합니다.
이러한 방식이 맞지 않는 경우 listbucket
에 포함된 선택적인 디렉터리 에뮬레이션 모드를 사용할 수 있습니다. 자세한 내용은 listbucket을 참조하세요.
다음 단계
- API 참조 문서를 확인합니다.
- Cloud Storage 설정 방법 알아보기