簡體   English   中英

使用 Python boto 從 S3 獲取文件元數據

[英]get file metadata from S3 using Python boto

我在AWS S3有一些二進制文件,我需要使用 Python Boto API 獲取file metadatacreated timemodified time和訪問時間?

我們嘗試的是將文件復制到 EC2 實例,從那里我們使用os模塊stat方法來獲取時間。 我希望當我們將文件復制到 EC2 實例時,這些細節會有所改變。

我嘗試過的示例代碼:

stat = os.stat(inputFile)
createdTime = datetime.fromtimestamp(stat[9]).strftime("%A, %B %d, %Y %I:%M:%S")

如何直接從 S3 獲取這些詳細信息?

Boto3 有一個函數S3.Client.head_object

HEAD 操作從對象中檢索元數據,而不返回對象本身。 如果您只對對象的元數據感興趣,則此操作很有用。

單步執行存儲桶中的文件並請求元數據的示例代碼:

#! /usr/bin/python3

import boto3
s3client = boto3.client('s3')

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']))

使用 boto3 而不是 boto。 您可以查看https://boto3.readthedocs.io/en/latest/reference/services/s3.html以了解有關 boto3 的 s3 api 的任何信息。 可用的過濾器不多,請檢查那里是否有您需要的過濾器。 檢查此以從https://boto3.readthedocs.io/en/latest/reference/services/s3.html#S3.Client.list_objects_v2開始

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM