我有一个简单的 AppEngine 处理程序,如下所示:
class TestGS(webapp2.RequestHandler):
def get(self):
file_name = '/gs/ds_stats/testfile'
files.gs.create(file_name, mime_type='text/html')
with files.open(file_name, 'a') as file_handle:
file_handle.write("foo")
files.finalize(file_name)
但是,当我调用此处理程序时,我会ExistenceError: ApplicationError: 105
排队with files.open(...
。
这似乎是一个超级简单的场景,根本没有任何迹象表明为什么会失败(特别是因为files.gs.create
上面的右边似乎已经成功,但是有没有办法验证这一点?)。
查看源代码,我看到以下问题可能导致此错误:
if (e.application_error in
[file_service_pb.FileServiceErrors.EXISTENCE_ERROR,
file_service_pb.FileServiceErrors.EXISTENCE_ERROR_METADATA_NOT_FOUND,
file_service_pb.FileServiceErrors.EXISTENCE_ERROR_METADATA_FOUND,
file_service_pb.FileServiceErrors.EXISTENCE_ERROR_SHARDING_MISMATCH,
file_service_pb.FileServiceErrors.EXISTENCE_ERROR_OBJECT_NOT_FOUND,
file_service_pb.FileServiceErrors.EXISTENCE_ERROR_BUCKET_NOT_FOUND,
]):
raise ExistenceError()
这是一个相当大范围的问题......当然它不会告诉我是哪一个!再一次,奇怪的是“创造”似乎奏效了。