3
我已打开我的存储桶的版本选项。我还将文件两次上传到我的存储桶中具有相同名称的文件夹,从而创建文件的两个修订版本。Amazon S3获取上传文件的版本列表
例如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();
}
我已经尝试了一些可用类的,但是我无法获得版本历史记录单个文件。 (可能缺少一些小东西)