Я включил опцию управления версиями для моей корзины. Я также дважды загрузил файл в папку в моем ведре с тем же именем, создав две ревизии файла.
например. mybucket / myfile.jpg (редакция 1 и редакция 2 (текущая))
Я пытаюсь использовать инструменты AmazonS3 .NET, чтобы получить список версий для одного файла, как указано выше. Поскольку я хочу, чтобы функциональность для пользователя могла загружать предыдущую версию загруженного файла.
Вот метод, который я создал, я могу получить список всех файлов в моей корзине / папке. Но не конкретный файл в папке / папке (я называю это папкой, но это сам по себе ключ / объект).
public String AmazonS3GetObjectVersions(Guid DocumentId)
{
AmazonS3 s3Client = AmazonS3ClientConnection();
GetObjectMetadataRequest ORequest = new GetObjectMetadataRequest();
ORequest.BucketName = DocumentStorageFolder(DocumentId); // e.g. mybucket
ORequest.Key = DocumentStorageReference(DocumentId); // e.g. myfolder/myfile.jpg
GetObjectMetadataResponse OResponse = s3Client.GetObjectMetadata(ORequest);
S3ObjectVersion version = new S3ObjectVersion();
version.BucketName = DocumentStorageFolder(DocumentId);
version.Key = DocumentStorageReference(DocumentId);
version.IsDeleteMarker = false;
ListVersionsRequest Request = new ListVersionsRequest();
Request.BucketName = DocumentStorageFolder(DocumentId);
String tmp = DocumentStorageReference(DocumentId);
string[] tmparr = tmp.Split('/');
Request.KeyMarker = tmparr[0];
//Request.Delimiter = "/";
//Request.MaxKeys = int.Parse(appConfig["MAX_VERSIONS"]);
ListVersionsResponse Response = s3Client.ListVersions(Request);
//Response.NextKeyMarker = tmparr[1];
Response.KeyMarker = tmparr[1];
List<S3ObjectVersion> Versions = new List<S3ObjectVersion>();
Versions = Response.Versions;
return Versions.ToString();
}
Я перепробовал несколько доступных классов, но мне не удалось получить историю версий для одного файла. (Возможно пропускает что-то маленькое)