Nella classe S3
di aws-sdk, qual è la differenza tra upload()
e putObject()
? Sembrano fare la stessa cosa Perché potrei preferire uno rispetto all'altro?Differenza tra upload() e putObject() per caricare un file su S3?
risposta
La differenza tra l'utilizzo di AWS SDK upload()
e putObject()
param è il seguente:
- Se l'MD5 riportato al termine di upload non corrispondenza, tentativi.
- Se la dimensione del file è abbastanza grande, utilizza il caricamento multipart per caricare le parti in parallelo.
- Riprova in base alle impostazioni del tentativo del client.
- È possibile utilizzare per la segnalazione di stato.
- Imposta il ContentType in base all'estensione del file se non si fornisce esso.
upload()
consente di controllare la modalità di caricamento dell'oggetto. Ad esempio, è possibile definire la concorrenza e le dimensioni della parte.
Dal loro docs: Carica un buffer di dimensioni arbitrarie, blob o flusso, utilizzando la gestione simultanea intelligente delle parti se il carico utile è sufficientemente grande.
Un vantaggio specifico che ho scoperto è che upload()
accetterà uno stream senza una lunghezza del contenuto definita mentre lo putObject()
no.
Ciò è stato utile in quanto disponevo di un endpoint API che consentiva agli utenti di caricare un file. Il framework ha consegnato il file al mio controller sotto forma di un flusso leggibile senza una lunghezza del contenuto. Invece di dover misurare le dimensioni del file, tutto quello che dovevo fare era passare direttamente alla chiamata upload()
.
Quando cercando la stessa informazione, mi sono imbattuto: https://aws.amazon.com/blogs/developer/uploading-files-to-amazon-s3/
Questa fonte è un po 'datato (riferimento a invece upload_file()
e put()
- o forse è il Rubino SDK?), Ma sembra che il putObject()
è destinato a oggetti più piccoli rispetto allo upload()
.
Si raccomanda upload()
e specifica il motivo:
Questo è il metodo consigliato di utilizzare l'SDK per caricare i file su un secchio . L'utilizzo di questo approccio offre i seguenti vantaggi:
- Gestisce caricamenti multipart per oggetti più grandi di 15 MB.
- Apre correttamente i file in modalità binaria per evitare problemi di codifica.
- Utilizza più thread per caricare parti di oggetti di grandi dimensioni in parallelo.
Poi copre l'operazione putObject()
:
Per gli oggetti più piccoli, si può scegliere di utilizzare
#put
invece.
EDIT: ho avuto problemi con l'operazione .abort()
sul mio .upload()
ed ho trovato questo utile: abort/stop amazon aws s3 upload, aws sdk javascript
Ora i miei vari altri eventi da https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Request.html sparano pure! Con .upload()
ho avuto solo "httpUploadProgress".
- 1. Errore durante l'esecuzione di "PutObject" su AWS, upload fallito
- 2. PHP upload S3 upload
- 3. usando aws-sdk per caricare immagini su s3 usando nodejs
- 4. Utilizzo di PHP per caricare su Amazon S3
- 5. Nodo upload di file s3 AWS-sdk dimensioni
- 6. Come caricare file di grandi dimensioni su S3?
- 7. Amazon S3 PutObject() restituisce il valore per confermare il successo?
- 8. S3 Upload con interrupt pycurl
- 9. differenza tra Amazon s3 e Amazon redshift
- 10. PHP Amazon SDK - s3 putObject e impostare corpo
- 11. Caricare su Amazon S3 utilizzando Boto3 e restituire l'URL pubblico
- 12. Come caricare un file su Amazon S3 e ottenere l'url in risposta utilizzando iOS
- 13. S3.putObject - la richiamata non viene mai chiamata
- 14. S3 Multipart Upload: come posso cancellare uno?
- 15. Upload iTunes Connect: quali file caricare
- 16. Impossibile caricare file; file upload modal display CP Home
- 17. Tecnicamente qual è la differenza tra s3n, s3a e s3?
- 18. Differenza tra caricare una classe e istanziarla
- 19. Caricare direttamente su S3 o tramite EC2?
- 20. Differenza tra Amazon S3 e S3n in Hadoop
- 21. rails refinerycms s3 upload error
- 22. Trasferimento di file tra Amazon EC2 e S3
- 23. Come caricare in serie su s3?
- 24. Test di upload di file Carrierwave su s3 con Capybara e Rspec
- 25. javax.net.ssl.SSLException durante Amazon S3 Multipart Upload
- 26. Come caricare i file direttamente su Amazon S3 da un server remoto?
- 27. Differenza tra xreadlines e-loop un file
- 28. Carica un file su S3 utilizzando l'SDK AWS
- 29. upload di file con l'uva e graffetta
- 30. Differenza tra file HDF5 e file PyTables
Quindi, perché qualcuno potrebbe preferire "putObject()' a 'upload()'? – callum
putObject viene utilizzato principalmente nei criteri per AWS S3. – error2007s
Il primo punto elenco è errato in base ai documenti: "Carica un buffer di dimensioni arbitrarie, blob o flusso" – callum