如何获取存储在 s3 Bucket 中的文件的 uri 路径

How to get uri path for a file stored in s3 Bucket

我的 Bucket 名称 'ABC' 的结构如下:

audiofiles
       audio_one.wav
       audio_two.mp3

我想要一个 python 代码来获取这些文件的 URI 而不是文件或文件列表,文件 uri 以便我可以在转录作业中将文件用作输入 link .

boto3 s3 客户端没有 return keys/files URLs 的方法。

但是我们可以使用每个对象的Public URL:

import boto3

bucket_name = 'bucket_name'
s3 = boto3.resource('s3')


def lambda_handler(event, context):
    my_bucket = s3.Bucket(bucket_name)

    for obj in my_bucket.objects.all():
        url = f'https://{bucket_name}.s3.amazonaws.com/{obj.key}'
        print(url)

这将为您打印如下内容:

https://bucket_name.s3.amazonaws.com/audio_one.wav
https://bucket_name.s3.amazonaws.com/audio_two.mp3
https://bucket_name.s3.amazonaws.com/audio_three.mp3