일반적으로는 웹을 통해 파일 액세스를 공개할 수 있습니다. 이 작업은 PHP 5 표준 환경에서 다음 방법으로 수행할 수 있습니다.
- 스크립트를 사용하여 Google Cloud Storage에 파일 제공: 앱이 파일을 제공합니다.
- 파일을 직접 제공하여 Google Cloud Storage에서 파일을 제공합니다.
app.yaml
에서 정적 핸들러를 사용하여 앱을 통해 업로드된 파일을 제공합니다.
마지막 방법에는 Cloud Storage가 사용되지 않습니다.
스크립트에서 파일 제공
앱에서 파일을 제공하려면 App Engine CloudStorageTools
클래스를 가져옵니다.
이제 CloudStorageTools::serve를 사용해서 Google Cloud Storage에서 파일을 제공합니다.
이 방식으로 앱에서 파일을 제공하면 개발자가 사용자 ID를 확인하고 허가된 사용자만 파일에 액세스하도록 보장할 수 있습니다. 이 방식의 단점은 파일 제공을 위해 애플리케이션이 이 코드를 실행해야 하기 때문에 인스턴스 시간이 소비되고 그로 인한 비용이 발생하는 것입니다.
Google Cloud Storage에서 직접 파일 제공
위 설명처럼 HTTP를 통해 Cloud Storage에서 파일을 직접 제공하면 앱에서 파일을 제공하는 것보다 속도와 경제성이 높아집니다. 파일을 기록할 때는 익명 사용자가 읽을 수 있도록 파일을 구성해야 합니다. 아래 스니펫에서 볼 수 있듯이 acl
스트림 옵션을 public-read
로 설정합니다.
파일이 공개적으로 읽을 수 있도록 Cloud Storage에 작성되면 CloudStorageTools::getPublicUrl을 사용하여 파일의 공개 URL을 구해야 합니다.
다음 예시에서는 일부 난수가 포함된 공개적으로 읽을 수 있는 파일을 만들고 이를 Cloud Storage 버킷에 기록하며 Cloud Storage에서 해당 파일로 리디렉션합니다.
이 방식의 단점은 파일을 누구나 읽을 수 있기 때문에 파일에 액세스할 수 있는 사람을 제어할 수 없다는 점입니다.
앱을 사용하여 업로드된 파일 제공
파일을 읽고 쓰는 다른 방법이 있나요?에서 이 옵션을 자세하게 설명합니다.