Operazioni sui file - AWS SDK per PHP

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

$source

stringa| StreamInterface

Percorso del percorso del file locale o del flusso contenente i dati da caricare.

$uploadRequestArgs

array

Argomenti della richiesta di caricamento (devono includere Bucket e Key).

$config

array

No

Le impostazioni di configurazione sostituiscono quelle specifiche di questo caricamento. Per ulteriori informazioni sulle opzioni di configurazione, consultate la sezione seguente.

$listeners

array

No

Matrice di TransferListener oggetti per il monitoraggio di questo caricamento.

$progressTracker

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

multipart_upload_threshold_bytes

int

No

Sostituisce la soglia predefinita per l'attivazione di un caricamento in più parti.

target_part_size_bytes

int

No

Sostituisce la dimensione predefinita della parte di destinazione in byte.

track_progress

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.

concurrency

int

No

Sostituisce il valore predefinito per la concorrenza.

request_checksum_calculation

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

$source

stringa|matrice| null

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. null Quando questo valore ènull, passa i valori Bucket e Key nel parametro. $downloadRequestArgs

$downloadRequestArgs

array

No

Argomenti aggiuntivi per la richiesta dell'oggetto di download. In caso $source null affermativo, fornisci qui i valori Bucket e Key.

$config

array

No

Sostituzioni di configurazione specifiche per questo download. Per ulteriori informazioni sulle opzioni di configurazione, consulta la sezione seguente.

$downloadHandler

AbstractDownloadHandler<add link>|null

No

Il gestore che riceve ogni blocco di oggetto e ne gestisce il download.

Il gestore predefinito per il download metodo utilizza un gestore basato sul flusso. Questo gestore inserisce ogni blocco di oggetto in un flusso.

Il gestore predefinito per il downloadFile metodo (vediScarica un oggetto S3 in un file locale) utilizza un gestore basato su file. Questo gestore scrive ogni blocco in un file.

Puoi implementarne uno personalizzato DownloadHandler per personalizzare dove e come l'SDK archivia i dati scaricati. Ad esempio, puoi archiviare i dati in database, archivi cloud o pipeline di elaborazione personalizzate anziché in file o stream.

$progressTracker

TransferListener

No

Un tracker dei progressi per questo download.

$listeners

array

No

Una serie di AbstractTransferListener oggetti per il monitoraggio di questo download.

L'SDK risolve il $config valore predefinito della configurazione di S3 Transfer Manager.

Opzione Tipo Campo obbligatorio Descrizione

multipart_download_type

stringa

No

Sostituisce il tipo di download multiparte predefinito. I valori validi sono «parte», «intervallo»

response_checksum_validation

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 ChecksumMode è presente nel. $getObjectRequestArgs DownloadRequest

track_progress

bool

No

Sostituisce l'opzione predefinita per abilitare il monitoraggio dei progressi. Se questa opzione è valida true e non fornisci un progressTracker parametro, DownloadRequest, l'SDK utilizza un'implementazione predefinita.

Utilizzate questa opzione per abilitare un tracker di avanzamento predefinito quando il $progressTracker parametro è. null

target_part_size_bytes

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 target_part_size_bytes configurato nel gestore di trasferimento.

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

$destination

stringa

Percorso locale in cui viene salvato il file.

$failsWhenDestinationExists

bool

Se fallire se il file di destinazione esiste già. Se questa opzione è attiva false e il file di destinazione esiste, l'SDK elimina o sostituisce il file esistente.

$downloadRequest

DownloadRequest

L'oggetto configurato. DownloadRequest Per ulteriori informazioni, vedere DownloadRequestobject.

Quando il downloadFile metodo viene eseguito correttamente, restituisce un DownloadResult<add link>.