2012-04-08 38 views
7

Sto cercando di duplicare un file da un secchio a un altro, ma non riesco a cucitura a vedere il nuovo file sul secchio destinazione.file duplicati in Amazon S3

Ricevo errori affatto ...

Richiesta:

enter image description here

Risposta:

<?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> 

Ma io continuerà a verificare le Ultima modifica Data su S3 e non riesco a trovare tutte le informazioni su questo nuovo file, né posso accedervi direttamente

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

Che cosa sto facendo di sbagliato?


Metodo:

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

se non hai controllato aiuto ufficiale, può vale la pena, non è completo esempio: http://docs.amazonwebservices.com/AmazonS3/latest/dev/CopyingObjectUsingNetSDK.html –

risposta

6

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

è dove il file è. (Nota doppia barra. // ..) Se si preme questo URL si vede il file ICO. Così la sua qualcosa a che fare con lo slash iniziale, che possono essere aggiunte automaticamente dal set di strumenti.

+1

In altre parole il parametro di destinazione è in fase di superato con un carattere di barra nella parte anteriore. –

+0

grazie, questo mi stava facendo impazzire per qualche tempo, e ho iniziato a cosa tutto il resto e ha mancato la cosa più semplice ... Questo è quando abbiamo davvero apprezzare di avere StackOverflow: o) – balexandre

0

puoi pubblicare la richiesta (con le intestazioni), catturato con qualcosa come violinista?

Il docs indicano che il percorso di origine dovrebbe iniziare con una barra (vale a dire, pienamente qualificato), hai provato questo?

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

Forse il quadro che fa per voi, ma la destinazione ha una barra che porta così forse ...