[Python] 클라우드 스토어에 올릴 대상을 수정하는 Cache-control

5264 단어 CloudStoragePython

목표


Pythn에서 Cloud Storage에 업로드할 객체의 Cache-Control을 수정합니다.
공식 문서에는 파이톤의 샘플 코드가 없습니다. 끼워 넣는 점이 있기 때문에 쓰십시오.

코드


upload.py
def main():
    _, temp_local_filename = tempfile.mkstemp()
    with codecs.open(temp_local_filename, 'w', 'utf_8') as f:
        f.write('テキスト')

    os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = 'credencialsファイル名'
    client = storage.Client()
    bucket = client.get_bucket('バケット名')
    blob = bucket.blob('アップロード先ファイル名')
    blob.upload_from_filename(filename=temp_local_filename)
    blob.cache_control = 'no-cache'
    blob.patch()
    return "success"

정확한 방법


upload.py
    blob.cache_control = 'no-cache'
    blob.patch()
설정 여부를 확인합니다.
bash
$ curl -v "https://storage.googleapis.com/バケット名/ファイル名" 2>&1 | grep -i Cache-Control
* h2 header: cache-control: no-cache
< cache-control: no-cache

Cache-control이 no-cache로 바뀌었어요.

잘못된 방법


메타데이터에서
  • 고정 키 데이터
  • 사용자 정의 메타데이터
  • , Cache-control은 고정 키 데이터와 같습니다.다음 코드는 사용자 정의 메타데이터를 설정하는 데 사용되므로 Cache-Control 이 제대로 설정되지 않습니다.
    upload.py
        blob.metadata['Cache-Control'] = 'no-cache'
    
    어떻게 설정했는지 확인해.
    bash
    $ curl -v "https://storage.googleapis.com/バケット名/ファイル名" 2>&1 | grep -i Cache-Control
    * h2 header: cache-control: public, max-age=3600
    * h2 header: x-goog-meta-cache-control: no-cache
    < cache-control: public, max-age=3600
    < x-goog-meta-cache-control: no-cache
    
    x-Google meta-cache-control로 설정되었습니다.

    콘솔에서 보더라도 기존 Cache-Control과 다른 항목은 값을 설정합니다.

    참고 자료

  • Setting Content-Encoding header for Cloud Storage Uploads with upload_from_file
  • 좋은 웹페이지 즐겨찾기