【发布时间】:2020-12-15 19:03:11
【问题描述】:
我正在尝试在 S3 特定文件夹中获取最后添加的文件。我参考这个(How to download the latest file of an S3 bucket using Boto3?)帖子并尝试。
@api_view(("GET",))
def get_protocol(request, pk):
union = Union.objects.get(pk=pk)
s3 = get_s3_client()
filepath = "media/private/" + str(pk) + "/certificate/docx"
get_last_modified = lambda obj: int(obj["LastModified"].strftime("%s"))
objs = s3.list_objects_v2(
Bucket="unifolio",
Prefix=filepath + "/" + "Union" + str(pk) + "_" + "certificate" + "3",
)
last_added = [obj["Key"] for obj in sorted(objs, key=get_last_modified)][0]
url = s3.generate_presigned_url(
ClientMethod="get_object",
Params={"Bucket": "unifolio", "Key": last_added},
# url 생성 후 60초가 지나면 접근 불가
ExpiresIn=60,
)
return Response()
但错误发生如下:
File "/Users/kimdoehoon/project/unifolio/unions/api_views.py", line 199, in get_protocol
objs_sorted = [obj["Key"] for obj in sorted(objs, key=get_last_modified)]
File "/Users/kimdoehoon/project/unifolio/unions/api_views.py", line 194, in <lambda>
get_last_modified = lambda obj: int(obj["LastModified"].strftime("%s"))
TypeError: string indices must be integers
我不明白为什么索引必须是整数错误。有人可以帮帮我吗?
【问题讨论】:
标签: django amazon-web-services amazon-s3 boto3