我有一个非常简单的Flask网络应用程序,它在GAE中运行,可以从Firebase Storage下载JSON文件,并在必要时将其替换为更新后的文件。一切正常,但是每当我尝试创建新文件时,GAE都会引发IOError异常。我使用Firebase Storage是因为我知道无法在GAE环境中读取/写入文件,但是我应该如何使用Pyrebase storage.child('foo.json').put('foo.json')
函数呢?我做错了什么?请检查下面的代码。
firebase_config = {my_firebase_config_dict}
pyrebase_app = pyrebase.initialize_app(firebase_config)
storage = pyrebase_app.storage()
@app.route('/')
def check_for_updates() :
try :
json_feeds = json.loads(requests.get('http://my-firebase-storage-url/example.json').text()
# Here I check if I need to update example.json
# ...
with open("example.json", "w") as file:
json.dump(info, file)
file.close()
storage.child('example.json').put('example.json')
return 'finished successfully!'
except IOError :
return 'example.json doesn't exists'
如果我的理解正确,您只需要在GAE中临时使用此文件,然后将其放入云存储中即可。根据此doc,您可以像在普通OS中那样进行操作,但可以在/ tmp文件夹中进行此操作:
如果您的应用仅需要写入临时文件,则可以使用标准将文件写入名为/ tmp的目录的Python 3.7方法
我希望它会有所帮助!