amazon s3 get_key成功后指定key不存在
回答问题 我正在使用 python 和 boto 这是我的代码: key = bucket.get_key(key_name) if not key: print 'error, key does not exist' return data = key.get_contents_as_string() 有时(随机出现)我得到这个异常: S3ResponseError:S3ResponseErro
回答问题
我正在使用 python 和 boto
这是我的代码:
key = bucket.get_key(key_name)
if not key:
print 'error, key does not exist'
return
data = key.get_contents_as_string()
有时(随机出现)我得到这个异常:
S3ResponseError:S3ResponseError:404 未找到
注意:文件由一台服务器上传,然后另一台服务器(位于不同的大陆)立即运行上述代码。
回溯:
Traceback(最近一次调用最后一次):文件“/test.py”,第 222 行,在 _process_response
数据 u003d key.get_contents_as_string() 文件“/usr/lib/python2.6/site-packages/boto-2.1.1-py2.6.egg/boto/s3/key.py”,
第 1201 行,在 get_contents_as_string response_headersu003dresponse_headers) 文件“/usr/lib/python2.6/site-packages/boto-2.1.1-py2.6.egg/boto/s3 /key.py",
第 1093 行,在 get_contents_to_file response_headersu003dresponse_headers) 文件“/usr/lib/python2.6/site-packages/boto-2.1.1-py2.6.egg/boto/s3 /key.py",
第 996 行,在 get_file override_num_retriesu003doverride_num_retries) 文件“/usr/lib/python2.6/site-packages/boto-2.1.1-py2.6.egg/boto/s3 /key.py",
第 211 行,在打开 override_num_retriesu003doverride_num_retries) 文件“/usr/lib/python2.6/site-packages/boto-2.1.1-py2.6.egg/boto/s3/key .py",
第 165 行,在 open_read self.resp.reason, body) S3ResponseError: S3ResponseError: 404 Not Found
NoSuchKey
指定的key不存在.key_nameidhost_id
所以我得到了密钥,但是当我尝试从中读取时,我得到“找不到”。任何想法 ?
Answers
这是预期的行为,根据Amazon S3 开发人员指南:
... 但是,有关更改的信息可能不会立即在 Amazon S3 中复制,您可能会观察到以下行为: 进程将新对象写入 Amazon S3 并立即尝试读取它。在完全传播更改之前,Amazon S3 可能会报告“密钥不存在”。
更多推荐
所有评论(0)