안녕하세요,
베스핀글로벌 GCP Support팀입니다.
이번 아티클에서는 주제로 "Cloud Storage에 업로드 후 URL로 접근 시 이전 버전의 파일이 확인되는 이유"를 다루고자 합니다.
이전 버전의 파일이 확인되는 이유
Cloud Storage에서 Object Versioning을 사용하지 않는 상황에서도 데이터 업로드 후 URL로 접근 시 이전 버전의 파일이 확인 될 때가 있습니다.
이는 해당 객체에 캐시 설정이 되어있기 때문입니다.
아래 조건의 객체에 한하여 Cloud Storage의 Cache-Control이 적용 됩니다.
- 공개적으로 액세스할 수 있습니다.
- 요청자 지불이 사용 설정된 버킷에 저장되어 있지 않습니다.
- 고객 제공 암호화 키를 사용하여 암호화되지 않습니다.
만약 Cache-Control이 적용가능한 객체에 Cache-Control 메타데이터 항목이 없으면 Cloud Storage가 다음에 기본값을 사용합니다.
- public, max-age=3600: 객체가 고객 관리 암호화 키를 사용하여 암호화되지 않은 경우
- no-cache, no-store, max-age=0: 객체가 고객 관리 암호화 키를 사용하여 암호화된 경우
따라서 객체의 Cache-Control 메타데이터를 수정하여 캐시 사용 여부 및 기간 설정을 할 수 있습니다.
- public: 객체가 어디서나 캐시될 수 있습니다.
- private: 객체가 요청자의 로컬 캐시에 캐시될 수 있습니다.
- no-cache: 객체가 캐시될 수 있지만 Cloud Storage에 의해 검증되기 전에는 이후 요청을 충족하는 데 사용될 수 없습니다.
- no-store: 객체가 캐시될 수 없습니다.
- max-age=TIME_IN_SECONDS: 객체가 비활성으로 간주되기 전에 캐시될 수 있는 기간입니다. max-age를 원하는 길이의 시간으로 설정할 수 있습니다. 특수한 상황을 제외하고 비활성 객체는 캐시에서 제공되지 않습니다
공개적으로 읽을 수 있는 객체의 캐시된 버전을 제공하지 않으려면 아래와 같이 객체에 Cache-Control: no-store을 설정하시기 바랍니다.
참조 링크
[1] Cloud Storage 캐싱
https://cloud.google.com/storage/docs/caching
관련 문의사항이 있으시면 Support Portal에 문의해 주시기 바랍니다.
감사합니다.