Google 云存储 - PUT 在开发服务器上失败

问题描述 投票:0回答:1

在我的开发服务器上,Google Cloud Storage 在执行

PUT
命令期间无法保存文件。

同样的命令在生产环境中运行良好。响应标头(见下文)几乎没有调试信息。我的硬盘驱动器上有足够的空间,并且我一直以管理员身份运行开发服务器,因此它应该具有所有必要的权限。

有什么想法吗?

下面是相关的回溯(我更改了存储桶名称):

INFO     2015-08-07 14:14:41,415 module.py:809] default: "PUT /_ah/gcs/bucket/IPR2013-00219%2C%20No.%2016%20Institution%20Decision%20-%20Decis_2015-08-07%2018-14-25.100000.pdf?upload_id=encoded_gs_file%3AZG9ja2V0YWxhcm0tZGV2L0lQUjIwMTMtMDAyMTksIE5vLiAxNiBJbnN0aXR1dGlvbiBEZWNpc2lvbiAtIERlY2lzXzIwMTUtMDgtMDcgMTgtMTQtMjUuMTAwMDAwLnBkZg%3D%3D HTTP/1.1" 500 -
Traceback (most recent call last):
  File "Project\libs\cloudstorage\storage_api.py", line 794, in __exit__
    self.close()
  File "Project\libs\cloudstorage\storage_api.py", line 787, in close
    self._flush(finish=True)
  File "Project\libs\cloudstorage\storage_api.py", line 841, in _flush
    self._send_data(data, self._written, file_len)
  File "Project\libs\cloudstorage\storage_api.py", line 874, in _send_data
    {'upload_path': self._path_with_token})
  File "Project\libs\cloudstorage\errors.py", line 141, in check_status
    raise ServerError(msg)
ServerError: Expect status [200] from Google Storage. But got status 500.
Path: '/bucket/IPR2013-00219%2C%20No.%2016%20Institution%20Decision%20-%20Decis_2015-08-07%2018-14-25.100000.pdf'.
Request headers: {'accept-encoding': 'gzip, *', 'content-range': 'bytes 0-195060/195061', 'x-goog-api-version': '2'}.
Response headers: {'date': 'Fri, 07 Aug 2015 18:14:41 GMT', 'transfer-encoding': 'chunked', 'server': 'Development/2.0'}.
Body: ''.
Extra info: {'upload_path': '/bucket/IPR2013-00219%2C%20No.%2016%20Institution%20Decision%20-%20Decis_2015-08-07%2018-14-25.100000.pdf?upload_id=encoded_gs_file%3AZG9ja2V0YWxhcm0tZGV2L0lQUjIw
MTMtMDAyMTksIE5vLiAxNiBJbnN0aXR1dGlvbiBEZWNpc2lvbiAtIERlY2lzXzIwMTUtMDgtMDcgMTgtMTQtMjUuMTAwMDAwLnBkZg%3D%3D'}.

2020 年更新 仅供参考,我在这里向 Google 提出了这个问题,他们说他们不会修复它,因为它已经被修复了,尽管它显然还没有修复。

2022 年更新 还是坏了!请参阅 Google 问题中建议的补丁。

python google-cloud-platform google-cloud-storage
1个回答
0
投票

确保您拥有访问存储桶的正确权限。您可以通过运行以下命令来检查这一点:

gsutil ls -l gs://bucket/

如果您没有正确的权限,您需要联系您的 Google 云端存储管理员以授予您必要的权限。

确保存储桶存在。您可以通过运行以下命令来检查这一点:

gsutil ls gs://bucket/

确保您使用的是正确的 API 版本。您的开发服务器可能不支持您正在使用的 API 版本

© www.soinside.com 2019 - 2024. All rights reserved.