7
votes

Du fichier en double in Amazon S3

J'essaie de dupliquer un fichier d'un godet à un autre, mais je ne peux pas couler pour voir le nouveau fichier sur le godet de destination.

Je reçois aucune erreur forte> du tout ... p>

demande: strong> p>

 Entrez la description de l'image ici p>

réponse: strong> p> xxx pré>

mais je continue à vérifier la dernière date modifiée em> sur S3 et je ne trouve aucune information sur ce nouveau fichier, que je puisse y accéder directement p>

http: // jk-v20. S3.Mazonaws.com/publicfiles/3FF28E21-4801-47C6-A6D0-E370706D303F_Content_Favicon.ico P> BlockQuote>

Qu'est-ce que je fais mal? p>


Méthode: P>

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;
    }
}


1 commentaires

Si vous n'avez pas vérifié l'aide officielle, il peut en valoir la peine, il y a un exemple complet: docs.amazonwebservices.com/amazons3/latest/dev/...


3 Réponses :


0
votes

Pouvez-vous poster la demande (avec des en-têtes), capturé avec quelque chose comme Fiddler?

Le DOCS indique que le chemin source devrait commencer par une barre oblique (c'est-à-dire complètement qualifié), avez-vous essayé cela? P>

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


0 commentaires

0
votes

code semble correct, j'utilise quelque chose de similaire dans mon application de travail.

Il peut être utile d'activer la journalisation d'accès au serveur sur vos godets S3 pour comprendre ce qui se passe dans les coulisses - http://docs.amazonwebservices.com/amazons3/latest/Dev/serverlogs.html .


0 commentaires

5
votes

http: //jk-v20.s3.Mazonaws. COM // PublicationsFiles / 3FF28E21-4801-47C6-A6D0-E370706D303F_Content_Favicon.ico

est l'endroit où le fichier est. (Note Double Slash. // ..) Si vous touchez cette URL, vous voyez le fichier ICO. Donc, c'est quelque chose à voir avec la barre oblique principale, qui peut être ajoutée automatiquement par votre outils.


2 commentaires

En d'autres termes, le paramètre de destination est passé avec un caractère slash à l'avant.


Merci, cela me conduisait de Noix depuis un certain temps et j'ai commencé à faire tout le reste et j'ai raté la chose la plus simple ... C'est quand nous apprécions vraiment d'avoir Stackoverflow: o)