我在AWS S3
中有一些二进制文件,我需要获得file metadata
created time
,modified time
以及使用Python Boto API访问时间吗?
我们尝试将文件复制到EC2实例,从那里我们使用os
模块stat
方法来获取时间。我希望当我们将文件复制到EC2实例时,这些细节会发生变化。
我试过的示例代码:
stat = os.stat(inputFile)
createdTime = datetime.fromtimestamp(stat[9]).strftime("%A, %B %d, %Y %I:%M:%S")
如何直接从S3获取这些详细信息?
答案 0 :(得分:1)
使用boto3而不是boto。 你可以查看https://boto3.readthedocs.io/en/latest/reference/services/s3.html关于boto3的s3 apis的任何信息。可用的过滤器不多,请检查您所需的过滤器是否可用。选中此项以开始https://boto3.readthedocs.io/en/latest/reference/services/s3.html#S3.Client.list_objects_v2
答案 1 :(得分:1)
Boto3具有功能S3.Client.head_object:
HEAD操作从对象检索元数据而不返回 对象本身。如果您只感兴趣,此操作很有用 在对象的元数据中。
示例代码以逐步浏览存储桶中的文件并请求元数据:
#! /usr/bin/python3
import boto3
paginator = s3client.get_paginator('list_objects_v2')
page_iterator = paginator.paginate(Bucket='MyBucketName')
for bucket in page_iterator:
for file in bucket['Contents']:
print(file['Key'])
try:
metadata = s3client.head_object(Bucket='MyBucketName', Key=file['Key'])
print(metadata)
except:
print("Failed {}".format(file['Key']))