Mat*_*igo 4 python django google-app-engine google-cloud-storage
所以我有一个django应用程序在appengine上运行并在用户上传时创建文件.我遇到的问题是试图找出如何删除它们.我创建它们的代码看起来像.
from google.appengine.api import files
file = request.FILES['assets_thumbnail']
filename = '/gs/mybucketname/example.jpg'
writable_file_name = files.gs.create(filename, mime_type='image/jpeg', acl='public-read')
with files.open(writable_file_name, 'a') as f:
f.write(file.read())
files.finalize(writable_file_name)
Run Code Online (Sandbox Code Playgroud)
这工作正常,但在文档中:
https://developers.google.com/appengine/docs/python/googlestorage/functions
没有列出删除方法.但是,如果您在下面的链接中查看google.appengine.api.files的实际来源(第504行)
有一个我可以调用的删除方法,但我无法弄清楚我的生活究竟是它想要的参数.我已经尝试了很多与桶名称等不同的组合.它似乎希望它以/ blobstore /开头,这与我在与云存储交互时所做的其他事情不同.我一直在浏览底层的blobstore类,google.appengine.api.files是写在上面的,但仍然无法弄清楚如何删除项目.看起来我可能需要找到我上传的项目的BlobKeys.我可以使用google主机的基于Web的存储桶管理器以及它们提供的gsutil命令行实用程序来删除它们.
是否有人通过部署到应用引擎的python应用程序成功删除了谷歌云存储中的文件?非常感谢任何线索/想法/想法.
Pab*_*blo 12
我来到这里是为了寻找一种用 python 清空谷歌存储目录的方法。是实现的解决方法app-engine(更适用于这个问题),但在 python 脚本中可能有用。
from google.cloud import storage
bucket_name = 'my-bucket'
directory_name = 'this/is/my/path/'
client = storage.Client()
bucket = client.get_bucket(bucket_name)
# list all objects in the directory
blobs = bucket.list_blobs(prefix=directory_name)
for blob in blobs:
blob.delete()
Run Code Online (Sandbox Code Playgroud)
AppEngine 1.7.0版支持使用blobstore API删除Google Storage对象.
key = blobstore.create_gs_key('/gs/my_bucket/my_object')
blobstore.delete(key)
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用REST API向Google Storage发出呼叫以删除该文件.
https://developers.google.com/storage/docs/reference-methods#deleteobject
| 归档时间: |
|
| 查看次数: |
4767 次 |
| 最近记录: |