我在S3上存储文件,同时在我的本地数据库上维护一个与该版本相关的(可变)元数据的表,因此我在执行文件操作时需要版本ID。
当我使用.NET AWSSDK添加新文件时没问题,因为PutObjectResponse有一个VersionId,但是当我复制一个文件时,CopyObjectResponse只有SourceVersionId(实际上都是根据{{3 }})。
{
"ETag":"\"6b841006ec17a5ce8c41db87639811e8\"",
"LastModified":"2014-07-25T07:43:15.000Z",
"Expiration":null,
"SourceVersionId":"9WeyyOE_rBiMVrra_jY1JpxLgtDsvtpo",
"ServerSideEncryptionMethod":null,
"ResponseMetadata":{
"RequestId":"7ECD47FAC9D84AE3",
"Metadata":{
"x-amz-id-2":"YAP+iltv/SfSh1p2ji6UU3Lan04usef1CV6Cy7DRcObPUa60iDd0STny9hZ6P69h"
}
},
"ContentLength":234,
"HttpStatusCode":200
}
根据SDK,响应头中应该有一个“x-amz-version-id”值,但是具有新(目标)对象的versionId。
除了再次为versionId轮询S3服务之外,还有什么建议?有没有办法访问底层的响应标头并挖出“x-amz-version-id”值?或者我错过了什么?