【发布时间】:2020-12-09 02:26:31
【问题描述】:
我已在 GCP 应用引擎上部署了一个烧瓶应用,用于将文件上传到 GCP 存储桶存储,然后在需要时从存储中下载文件。但是,当我尝试从云存储下载文件时遇到错误 OSError: [Errno 30] Read-only file system:。我可以从部署在应用程序引擎上的应用程序正确上传文件,并且验证文件已上传,但是当我尝试从网站下载时出现错误。任何想法将不胜感激?
从桶中下载文件的代码
storage_client = storage.Client()
bucket = storage_client.bucket(bucket_name)
blob = bucket.blob(source_blob_name)
blob.download_to_filename(destination_file_name)
PS:我正在使用 google-cloud-storage==1.33.0
【问题讨论】:
-
听起来您尝试写入下载文件的目的地是只读的。
-
@JohnGordon 感谢您的评论!您能否提供有关如何将其下载到特定文件夹的指导?我尝试使用 os.path 指定文件夹路径,但出现另一个错误:(
-
通常的方法是使用
f = open("/some/path/to/filename", "w"),然后使用f.write(content)。 -
不,这也无济于事..仍然是同样的错误
-
您是想将文件下载到您的应用程序还是一个和用户?如果对于您的应用程序,那么下面的答案虽然有效,但如果文件不大,也可以考虑将 BytesIO 用于内存文件。如果是最终用户,那么您可以向用户提供一个链接,以便直接从云存储下载它并绕过您的应用。
标签: python google-app-engine google-cloud-storage