2012-04-08 8 views
7

ファイルをバケットから別のファイルに複製しようとしていますが、コピー先のバケットに新しいファイルが表示されません。Amazon S3のファイルが重複しています

私は全くエラーを取得していないよ...

要求:

enter image description here

応答:

<?xml version="1.0" encoding="UTF-8"?> 
<CopyObjectResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> 
    <LastModified>2012-04-08T11:26:36.000Z</LastModified 
    <ETag>&quot;a5f9084078981b64737b57dbf1735fcf&quot;</ETag> 
</CopyObjectResult> 

しかし、私はチェックしておきます私は間違って何をやっている直接

http://jk-v20.s3.amazonaws.com/PublicFiles/3ff28e21-4801-47c6-a6d0-e370706d303f_Content_Favicon.ico

を最終S3上の日付を修正し、私はこの新しいファイルについての情報を見つけることができない、どちらか私はそれにアクセスすることができますか?


方法:

public void DuplicateFileInCloud(string original, string destination) 
{ 
    try 
    { 
     CopyObjectRequest request = new CopyObjectRequest(); 

     if (original.StartsWith("http")) 
     { 
      // could be from other bucket, URL will show all data 
      // example: http://jk-v30.s3.amazonaws.com/PredefinedFiles/Favicons/002.ico 
      string bucket = getBucketNameFromUrl(original), // jk-v30 
        key = getKeyFromUrl(original);   // PredefinedFiles/Favicons/002.ico 

      request.WithSourceBucket(bucket); 
      request.WithSourceKey(key); 
     } 
     else 
     { 
      // same bucket: copy/paste operation 
      request.WithSourceBucket(this.bucketName); 
      request.WithSourceKey(original); 
     } 

     request.WithDestinationBucket(this.bucketName); 
     request.WithDestinationKey(destination); 
     request.CannedACL = S3CannedACL.PublicRead; 

     using (AmazonS3 client = Amazon.AWSClientFactory.CreateAmazonS3Client(this.accessKey, this.secretAccessKey)) 
     { 
      S3Response response = client.CopyObject(request); 
      response.Dispose(); 
     } 
    } 
    catch (AmazonS3Exception s3Exception) 
    { 
     throw s3Exception; 
    } 
} 
+0

正式なヘルプをチェックしなかった場合、それは価値があるかもしれません、完全な例があります:http://docs.amazonwebservices.com/AmazonS3/latest/dev/CopyingObjectUsingNetSDK.html –

答えて

6

http://jk-v20.s3.amazonaws.com//PublicFiles/3ff28e21-4801-47c6-a6d0-e370706d303f_Content_Favicon.ico

ファイルがどこにあるかです。 (二重スラッシュをメモします// .. ..)このURLにヒットすると、icoファイルが表示されます。したがって、あなたのツールセットによって自動的に追加される可能性のあるスラッシュと関係します。

+1

つまり、宛先パラメータは正面にスラッシュ文字が付いています。 –

+0

これはしばらくの間ナッツを運転していたので、他のすべてのことを始めて、最も単純なことを逃しました...これは、私たちが本当にStackOverflowを持っていることに感謝しています。 – balexandre

0

あなたはシオマネキのようなものを撮影し、(ヘッダーを含む)のリクエストを投稿することができますか?

docsは、ソースパスがスラッシュ(つまり、完全修飾名)で始まることを示しています。試してみましたか?

x-amz-copy-source: /source_bucket/sourceObject 

たぶん、フレームワークはあなたのためのことを行いますが、あなたの目的地は、先頭のスラッシュを持っているので、多分...