我正在嘗試複製S3對象,使用有效的鍵但CopyObject()不停地返回「指定的鍵不存在」。AWSSDK,S3 CopyObjectRequest返回NoSuchKey錯誤的有效密鑰
但是,GetObject和ListObjects返回對象沒有問題。
下面是一個示例:
var copyReq = new CopyObjectRequest
{
SourceBucket = bucketName,
SourceKey = key,
DestinationBucket = bucketName,
DestinationKey = ("/UserImages/mynewkeyname.jpg"),
StorageClass = S3StorageClass.StandardInfrequentAccess,
CannedACL = Amazon.S3.S3CannedACL.PublicRead
};
s3.CopyObject(copyReq);
ListObjectsResponse listResponse = s3.ListObjects(new ListObjectsRequest
{
BucketName = bucketName,
MaxKeys = 1,
Prefix = key
});
var request = new Amazon.S3.Model.GetObjectRequest()
{
BucketName = bucketName,
Key = key,
};
var getResponse = s3.GetObject(request);
鍵和bucketname被別人定義在哪裏,但他們從其他其他API響應被拉扯。
原來這是像你說的,但更糟。如果它只是一個主要的斜線,那麼SDK可以算出來。我的SourceKey中的鍵實際上是由其他人插入的,並以雙斜槓開始。我認爲其中一個永久停留在那裏,因爲我無法通過控制檯刪除雙斜槓。 – user2245759