次のような単純な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()
それはかなり広範囲の問題です...もちろん、それは私にどれを教えてくれません!また、「作成」が機能しているように見えるのは奇妙です。