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

spe*_*ane 9 python google-cloud-storage

在我的开发服务器上,Google云端存储无法在PUT命令期间保存文件.

这个命令在生产上运行良好.响应头(见下文)几乎没有调试信息.我的硬盘驱动器上有足够的空间,而且我一直以管理员身份运行开发服务器,所以它应该拥有所有必要的权限.

有任何想法吗?

以下是相关的Traceback(我更改了桶名称):

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'}.
Run Code Online (Sandbox Code Playgroud)

小智 1

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

gsutil ls -l gs://bucket/
Run Code Online (Sandbox Code Playgroud)

如果您没有正确的权限,则需要联系您的 Google Cloud Storage 管理员以授予您必要的权限。

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

gsutil ls gs://bucket/
Run Code Online (Sandbox Code Playgroud)

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