Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Operazioni sui file
S3 Transfer Manager fornisce metodi per caricare e scaricare singoli file.
Carica file locali
Per caricare un file su Amazon S3, usa il upload <add link> metodo.
<?php use Aws\S3\S3Transfer\Models\UploadRequest; use Aws\S3\S3Transfer\S3TransferManager; require __DIR__ . '/../vendor/autoload.php'; $transferManager = new S3TransferManager(null, [ 'default_region' => 'us-west-2' ]); // Source can be from a local path to a file. $source = '/path/to/local/file.txt'; // Or the source can be an instance of StreamInterface. $source = GuzzleHttp\Psr7\Utils::streamFor('Hello World!'); $uploadPromise = $transferManager->upload( new UploadRequest( $source, [ 'Bucket' => 'amzn-s3-demo-bucket', 'Key' => 'path/to/s3/file.txt', // Additional `putObject` parameters as needed. ], [ // Optional configuration overrides. 'multipart_upload_threshold_bytes' => 100 * 1024 * 1024, // 100MB 'target_part_size_bytes' => 10 * 1024 * 1024, // 10MB 'track_progress' => true, 'request_checksum_calculation' => 'when_required', ] ) ); // The upload is asynchronous, you can wait for it to complete. $result = $uploadPromise->wait(); // Or you can use the promise for more complex workflows. $result = $uploadPromise->then( function ($result) { echo "Upload succeeded!"; }, function ($error) { echo "Upload failed: " . $error->getMessage(); } )->wait();
Parametri del metodo upload
Il upload metodo accetta un'istanza di UploadRequest <add link> come argomento.
Parametri di UploadRequest
| Parametro | Tipo | Campo obbligatorio | Description |
|---|---|---|---|
|
|
stringa| |
Sì |
Percorso del percorso del file locale o del flusso contenente i dati da caricare. |
|
|
array |
Sì |
Argomenti della richiesta di caricamento (devono includere Bucket e Key). |
|
|
array |
No |
Le impostazioni di configurazione sostituiscono quelle specifiche di questo caricamento. Per ulteriori informazioni sulle opzioni di configurazione, consultate la sezione seguente. |
|
|
array |
No |
Matrice di |
|
|
TransferListener |
No |
Un tracker dei progressi per questo caricamento. |
L'SDK risolve il $config valore predefinito della configurazione di S3 Transfer Manager.
| Opzione | Tipo | Campo obbligatorio | Description |
|---|---|---|---|
|
|
int |
No |
Sostituisce la soglia predefinita per l'attivazione di un caricamento in più parti. |
|
|
int |
No |
Sostituisce la dimensione predefinita della parte di destinazione in byte. |
|
|
bool |
No |
Sostituisce l'opzione predefinita per abilitare il monitoraggio dei progressi. Se questa opzione è valida true e non fornisci un progressTracker parametro, l'SDK utilizza un'implementazione predefinita. |
|
|
int |
No |
Sostituisce il valore predefinito per la concorrenza. |
|
|
stringa |
No |
Sostituisce il valore predefinito che indica se deve essere eseguito il calcolo del checksum della richiesta. |
Quando il upload metodo viene eseguito correttamente, restituisce un. UploadResult <add link>
Scarica oggetti S3
Per scaricare un oggetto da Amazon S3, usa il download <add link> metodo.
<?php use Aws\S3\S3Transfer\Models\DownloadRequest; use Aws\S3\S3Transfer\S3TransferManager; require __DIR__ . '/../vendor/autoload.php'; $transferManager = new S3TransferManager(null, [ 'default_region' => 'us-west-2' ]); // Download using an S3 URI. $downloadPromise = $transferManager->download( new DownloadRequest( 's3://amzn-s3-demo-bucket/path/to/s3/file.txt', [ // Additional `getObject` parameters as needed. ], [ // Optional configuration overrides. 'response_checksum_validation' => 'when_required', 'track_progress' => true, 'target_part_size_bytes' => 10 * 1024 * 1024, // 10MB ] ) ); // Wait for the download to complete. $result = $downloadPromise->wait(); // The SDK uses a stream-based download handler by default. $stream = $result->getDownloadDataResult(); // You can either get the content. $content = $stream->getContents(); // Or write the stream to a file. file_put_contents('/path/to/local/file.txt', $stream); // Don't forget to close the stream. $stream->close();
Parametri del metodo download
Il download metodo accetta un'istanza di DownloadRequest <add link> come argomento.
Parametri di DownloadRequest
| Parametro | Tipo | Campo obbligatorio | Description |
|---|---|---|---|
|
|
stringa|matrice| |
No |
L'oggetto da scaricare da S3. Puoi fornire questo parametro come stringa URI S3 (» s3://amzn-s3-demo-bucket/key «), un array con chiavi Bucket e Key, oppure. |
|
|
array |
No |
Argomenti aggiuntivi per la richiesta dell'oggetto di download. In caso |
|
|
array |
No |
Sostituzioni di configurazione specifiche per questo download. Per ulteriori informazioni sulle opzioni di configurazione, consulta la sezione seguente. |
$downloadHandler |
|
No |
Il gestore che riceve ogni blocco di oggetto e ne gestisce il download. Il gestore predefinito per il Il gestore predefinito per il Puoi implementarne uno personalizzato |
|
|
|
No |
Un tracker dei progressi per questo download. |
|
|
|
No |
Una serie di |
L'SDK risolve il $config valore predefinito della configurazione di S3 Transfer Manager.
| Opzione | Tipo | Campo obbligatorio | Descrizione |
|---|---|---|---|
|
|
stringa |
No |
Sostituisce il tipo di download multiparte predefinito. I valori validi sono «parte», «intervallo» |
|
|
stringa |
No |
Sostituisce il valore risolto dalla configurazione del gestore di trasferimento per stabilire se la convalida del checksum debba essere eseguita. L'SDK considera questa opzione solo se non |
|
|
bool |
No |
Sostituisce l'opzione predefinita per abilitare il monitoraggio dei progressi. Se questa opzione è valida Utilizzate questa opzione per abilitare un tracker di avanzamento predefinito quando il |
|
|
int |
No |
La dimensione della parte in byte da utilizzare in un intervallo di download multiparte. Se non si fornisce questo parametro, il download utilizza quello |
Quando il download metodo viene eseguito correttamente, restituisce un DownloadResult<add link>.
Scarica un oggetto S3 in un file locale
Per scaricare un oggetto S3 direttamente in un file locale, utilizzate il downloadFile metodo:
<?php use Aws\S3\S3Transfer\Models\DownloadFileRequest; use Aws\S3\S3Transfer\Models\DownloadRequest; use Aws\S3\S3Transfer\S3TransferManager; require __DIR__ . '/../vendor/autoload.php'; $transferManager = new S3TransferManager(null, [ 'default_region' => 'us-west-2' ]); $downloadFilePromise = $transferManager->downloadFile( new DownloadFileRequest( '/path/to/local/file.txt', // Destination file path. false, // Fail when destination exists. new DownloadRequest( 's3://amzn-s3-demo-bucket/path/to/s3/file.txt', [], // `getObject` request args [ 'track_progress' => true, 'target_part_size_bytes' => 10 * 1024 * 1024, // 10MB parts ] ) ) ); // Wait for download to complete. $result = $downloadFilePromise->wait(); // `getDownloadDataResult()` returns the string for the file path of the downloaded content because // the default `DownloadHandler` used by `downloadFile()` is a file-based handler. echo "File downloaded successfully at {$result->getDownloadDataResult()}!\n";
Parametri del metodo downloadFile
Il downloadFile metodo accetta un'istanza di DownloadFileRequest come argomento.
Parametri di DownloadFileRequest
| Opzione | Tipo | Campo obbligatorio | Descrizione |
|---|---|---|---|
|
|
stringa |
Sì |
Percorso locale in cui viene salvato il file. |
|
|
bool |
Sì |
Se fallire se il file di destinazione esiste già. Se questa opzione è attiva |
|
|
|
Sì |
L'oggetto configurato. |
Quando il downloadFile metodo viene eseguito correttamente, restituisce un DownloadResult<add link>.