Мой код Python:
Код: Выделить всё
import boto3
S3_BUCKET = "mybucket"
S3_KEY = "mykey"
s3_client = boto3.client("s3")
paginator = s3_client.get_paginator("list_object_versions")
page_iterator = paginator.paginate(Bucket=S3_BUCKET, Prefix=S3_KEY)
for page in page_iterator:
for version_obj in page.get("Versions", []):
version_details = s3_client.get_object(
Bucket=S3_BUCKET, Key=S3_KEY, VersionId=version_obj["VersionId"]
)
Устранение неполадок, которые я выполнил:< /p>
[*]У меня полный доступ к S3. (
Код: Выделить всё
s3:*[*]Мои учетные данные правильно настроены локально.
[*]Я могу перечислять и загружать версии из интерфейса S3 консоли AWS.
[*]Проблема возникает только для нескольких файлов.
[*]Ключ S3 не является префиксом для какого-либо другого объекта исключает возможность несоответствия ключей, поскольку версии списка используют префикс, а объект получения использует ключ.
[*]AWS S3 CLI (версия aws-cli/2.15.43 Python/3.11.8 Linux /6.8.0-48-generic exe/x86_64.ubuntu.24 Prompt/Off) отлично работает aws s3api list-object-versions --bucket mybucket --prefix mykey и aws s3api get-object --bucket mybucket --key mykey --version-id versionidfromresponseabove outfile.
[*]Файл не удаляется.
[*]Версия не удаляется.
Подробнее здесь: https://stackoverflow.com/questions/792 ... rsion-does
Мобильная версия