2015-05-08 18 views
6

Ho utilizzato lo snippet di codice dal codice di esempio Amazon. Il codice seguente carica i dati nel bucket S3 di Amazon, ma ho bisogno dell'URL del file di caricamento. Sto andando nella giusta direzione? o qualcuno potrebbe indicarmi l'errore che sto facendoCome caricare un file su Amazon S3 e ottenere l'url in risposta utilizzando iOS

Qualsiasi tipo di aiuto sarebbe molto apprezzato.

AWSS3TransferManager *transferManager = [AWSS3TransferManager defaultS3TransferManager]; 
    AWSS3TransferManagerUploadRequest *uploadRequest = [AWSS3TransferManagerUploadRequest new]; 
    uploadRequest.bucket = S3BucketName; 
    uploadRequest.key = S3UploadKeyName; 
    uploadRequest.body = self.uploadFileURL; 
    //uploadRequest.contentLength = [NSNumber numberWithUnsignedLongLong:fileSize]; 

    [[transferManager upload:uploadRequest] continueWithBlock:^id(BFTask *task) { 
     // Do something with the response 
     AWSS3TransferManagerUploadOutput *uploadOutPut = task.result; 
     NSLog(@"bftask:%@",uploadOutPut); // Upload out put gives me the following response 
     return nil; 
    }]; 

bfTask Risposta:

bftask:<AWSS3TransferManagerUploadOutput: 0x1706606c0> { 
    ETag = "\"0aefedfa36b687a74025b1ad50f3101f\""; 
    serverSideEncryption = 0; 
} 

risposta

6

Se avete solo bisogno di scaricare il file, è possibile utilizzare AWSS3TransferManagerDownloadRequest per scaricare un file utilizzando l'SDK. In alternativa, è possibile utilizzare AWSS3PreSignedURLBuilder per generare un URL preconfilato per scaricare un file.

Se si vuole solo conoscere l'URL dell'oggetto, l'URL segue il seguente schema:

https://<YourS3Endpoint>/<YourBucketName>/<YourObjectKeyName> 

Eventuali oggetti in Amazon S3 sono privati ​​per impostazione predefinita e non leggibili pubblicamente. Se si desidera renderlo pubblicamente leggibile, è necessario impostare ACL sull'oggetto AWSS3TransferManagerUploadRequest.

Vedere Amazon S3 Bucket Public Access Considerations per ulteriori dettagli.

+7

È impressionante quanto siano pessimi gli SDK AWS e quanto sia pessima la loro documentazione. E l'oggetto risultato NON è utile a NULLA, non ti restituisce nemmeno l'URL finale. Forse Amazon guida i loro sviluppatori come il loro personale di raccolta, e sono troppo occupati a pensare al suicidio per creare strutture utili. – theLastNightTrain

+2

@theLastNightTrain - D'accordo, onestamente mi fa incazzare. Inoltre, tutta la documentazione è scaduta mesi e nessuno degli esempi è più rilevante. Inoltre non deprecano le cose, rimuovono solo intere classi che infrangono il codice di tutti quando eseguono un aggiornamento pod. Più provo a lavorare con l'SDK Mobile di AWS, più penso che sia uno scherzo crudele su di noi sviluppatori che cercano effettivamente di lavorare con esso. –

Problemi correlati