我需要让我的python app store将一些文本存储在我已经在GAE上的GCS存储桶上创建的文件中。
到目前为止,我发现的所有文档都包含了比我的简单用例更复杂的例子,而且我迷失方向。
我真正想做的就是在GCS上找到以下内容的等价物(包括在GCS上复制此内容所需的任何可能的导入):
with open("../somedir/somefile.txt", "a") as myfile:
myfile.write("appended text")
有任何建议吗?
答案 0 :(得分:6)
您无法修改GCS中的文件。一旦他们被关闭,那就是它。要追加我会这样做:
import cloudstorage
from google.appengine.api import app_identity
bucketName = app_identity.get_default_gcs_bucket_name()
class MainPage(webapp2.RequestHandler):
def get(self):
fileName = "/" + bucketName + "/somedir/somefile.txt"
try:
with cloudstorage.open(fileName, "r") as gcsFile:
tempStorage = gcsFile.read()
tempStorage += "\n"
except:
tempStorage = ""
with cloudstorage.open(fileName, "w") as gcsFile:
gcsFile.write(tempStorage + "appended text")
with cloudstorage.open(fileName, "r") as gcsFile:
output= gcsFile.read()
self.response.out.write(output)
写信:
import cloudstorage
from google.appengine.api import app_identity
bucketName = app_identity.get_default_gcs_bucket_name()
fileName = "/" + bucketName + "/somedir/somefile.txt"
with cloudstorage.open(fileName, "w") as gcsFile:
gcsFile.write("text")
答案 1 :(得分:0)
我建议在GAE上将数据写入或附加到/ tmp / file。 如果文件已完成并且不再需要修改,则可以将文件上传到GCS,这样可能会更有效。