![](/img/trans.png)
[英]How to access file metadata, for files in google cloud storage, from a python google cloud function
[英]How to grab specific object metadata info from Google Cloud Storage?
我想要:
foobar
所有存储桶。Creation time, Update time, Storage class, Content-Length, Content-Type, Hash (crc32c), Hash, ETag, Generation, Metageneration, ACL, TOTAL
)例如Creation time
和Content-Type
和TOTAL
。foobar, Creation time, Content-Type, TOTAL
我不想:
到目前为止我所拥有的:
gcloud projects list
将所有项目链接到我的帐户。project_id, recursive, selected
。 recursive
TRUE
适用于那些我知道他们没有那么多文件夹的人,所以我有能力查看所有子目录。 selected
TRUE
只是帮助我完成一些项目,而不是全部。selected
字段为TRUE
所有项目,我使用以下命令收集数据并将其保存在文件中: gsutil ls -L -p "${project}" gs://*foobar* >> non_recursive.csv
selected
字段和recursive
字段为TRUE
的项目,我收集数据并使用以下命令将其保存在文件中: gsutil ls -r -L -p "${project}" gs://*secret* >> recursive.csv
所以我的问题:
gsutil ls -L -p "${project}" gs://*foobar* >> non_recursive.csv
仅收集一些元数据字段并以上述数据帧格式输出?您可以生成要为其获取元数据的文件列表,然后为每个文件生成一个gsutil ls
命令,例如,
sed 's/\(.*\)/gsutil ls -L \1/' objects_to_list | sh
如果有大量这样的对象,您可以并行执行列表,例如,
sed 's/\(.*\)/gsutil ls -L \1/' objects_to_list | split -l 100 - LISTING_PART
for f in LISTING_PART*; do
sh $f > $f.out &
done
wait
这将获取文件名和 mimeType:
blobs = storage_client.list_blobs(BUCKET)
for blob in blobs:
item = {'content': "gs://{}/{}".format(blob.bucket.name,blob.name), 'mimeType': "{}".format(blob.content_type)}
print(item)
可以获得其他元数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.