上传文件至Cloud Storage存储桶时如何正确设置content-type?
解决方案
默认Cloud Build的artifacts自动上传功能会自动检测文件MIME类型,对.tar.gz格式的识别存在偏差,你可以改用gsutil命令手动上传产物,上传时直接指定Content-Type元数据即可解决该问题。
修改后的cloudbuild.yaml配置
steps: - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk:latest' entrypoint: 'bash' args: - '-c' - | tar -zcf ./test_${SHORT_SHA}.tar.gz ./$_UPLOAD_DIRNAME # 上传时指定正确的MIME类型 gsutil -h "Content-Type: application/gzip" cp ./test_${SHORT_SHA}.tar.gz gs://some-bucket/ env: - '_UPLOAD_DIRNAME=$_UPLOAD_DIRNAME' - 'SHORT_SHA=$SHORT_SHA'
注意事项
- 原配置中的
artifacts段可以完全删除,产物上传逻辑已经整合到构建步骤中。 - 若你需要使用
application/tar+gzip作为MIME类型,直接替换上述gsutil命令中的application/gzip即可。 - 该方案上传后直接生成正确的MIME类型配置,无需后续手动调整,可正常下载解压。
内容的提问来源于stack exchange,提问作者Martin Zeitler
相关产品推荐
相关产品推荐

