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();
}
我已經嘗試了一些可用類的,但是我無法獲得版本歷史記錄單個文件。 (可能缺少一些小東西)