Python 从谷歌云存储中删除文件

Python 从谷歌云存储中删除文件,python,django,google-app-engine,google-cloud-storage,Python,Django,Google App Engine,Google Cloud Storage,因此,我在appengine上安装并运行了一个django应用程序,让它在用户上传文件时创建文件。我遇到的问题是如何删除它们。我创建它们的代码如下所示 from google.appengine.api import files file = request.FILES['assets_thumbnail'] filename = '/gs/mybucketname/example.jpg' writable_file_name = files.gs.create(filename, mime

因此,我在appengine上安装并运行了一个django应用程序,让它在用户上传文件时创建文件。我遇到的问题是如何删除它们。我创建它们的代码如下所示

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)
这很好,但在以下位置的文档中:

没有列出删除方法。但是,如果您查看下面链接(第504行)中google.appengine.api.files的实际来源

有一个delete方法我可以调用,但我无法用一生的时间精确地找出它想要的参数。我尝试了很多不同的组合,比如bucket名称之类。它似乎希望它以/blobstore/开始,这与我迄今为止在与云存储交互时所做的任何事情都不同。我一直在查看google.appengine.api.files所编写的底层blobstore类,但仍然无法准确地找出如何删除项目。看起来我可能需要为我上传的项目找到BlobKeys。我可以使用google托管的基于web的bucket manager以及它们提供的gsutil命令行实用程序很好地删除它们


是否有人通过部署到app engine的python应用程序成功地从google云存储中删除了文件?非常感谢提供任何线索/想法/想法。

AppEngine 1.7.0版支持使用blobstore API删除Google存储对象

key = blobstore.create_gs_key('/gs/my_bucket/my_object')
blobstore.delete(key)
或者,您可以使用RESTAPI调用Google Storage来删除该文件


我来到这里是想用python清空google存储目录。是
appengine
实现的一种变通方法(更多应用于此问题),但在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()

谢谢你,斯图尔特。我很高兴知道我没有遗漏什么。我想删除关于日期的bucket文件,但问题是它位于文件名的中间,而不是前缀。