首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在google云存储中遍历blob中的对象?Python

如何在google云存储中遍历blob中的对象?Python
EN

Stack Overflow用户
提问于 2018-02-10 03:05:33
回答 1查看 6.4K关注 0票数 0

我正在努力弄清楚如何在google云存储中的blob中迭代对象。其地址与此类似:

代码语言:javascript
复制
gs://project_ID/bucket_name/DIRECTORY/file1 
gs://project_ID/bucket_name/DIRECTORY/file2
gs://project_ID/bucket_name/DIRECTORY/file3
gs://project_ID/bucket_name/DIRECTORY/file4
...

GCS桶上的目录有很多不同的文件需要迭代,这样我就可以检查它最后一次更新的时间(看看它是否是新的文件),这样我就可以提取内容了。

示例函数

代码语言:javascript
复制
def getNewFiles():
    storage_client = storage.Client(project='project_ID')
    try:
        bucket = storage_client.get_bucket('bucket_name')
    except:
        storage_client.create_bucket(bucket_name)

    for blob in bucket.list_blobs(prefix='DIRECTORY'):
        if blob.name == 'DIRECTORY/':
            **Iterate through this Directory**
            **CODE NEEDED HERE***
            **Figure out how to iterate through all files here**

我已经看过python和客户端库,找不到这种工作的任何例子。

EN

Stack Overflow用户

发布于 2018-02-19 15:51:17

根据for Python文档blob.name

这与桶中对象的唯一路径相对应。

因此,blob.name将返回如下内容:

代码语言:javascript
复制
DIRECTORY/file1

如果在使用list_blobs() 方法时已经包含了参数方法,则可以通过以下操作获取目录中的所有文件:

代码语言:javascript
复制
for blob in bucket.list_blobs(prefix='DIRECTORY'):
    print(blob.name)

您可以使用类似blob.name.lstrip('DIRECTORY')标准库re模块之类的方法来清理字符串并只获取文件名。

但是,根据您所说的:“这样我就可以检查它最后一次更新的时间(查看它是否是一个新文件)”,如果您正在寻找在桶中有新文件时触发的某个函数,则可以使用Google云功能。您已经了解了在创建新对象时如何将它们与云存储一起使用的这里的医生。尽管截至当前日期(2月/2018年),您只能使用NODE.JS编写云函数

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48716820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档