Opérations sur les fichiers - AWS SDK pour PHP

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Opérations sur les fichiers

S3 Transfer Manager fournit des méthodes pour charger et télécharger des fichiers individuels.

Téléchargez des fichiers locaux

Pour charger un fichier sur Amazon S3, utilisez la upload <add link> méthode.

<?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();

Paramètres de la méthode upload

La upload méthode accepte une instance de UploadRequest <add link> comme argument.

Paramètres dans l’UploadRequest

Paramètre Type Obligatoire Description

$source

chaîne| StreamInterface

Oui

Chemin du chemin du fichier local ou du flux contenant les données à télécharger.

$uploadRequestArgs

array

Oui

Téléchargez les arguments de la demande (doivent inclure Bucket et Key).

$config

array

Non

Les remplacements de configuration spécifiques à ce téléchargement. Pour plus d'informations sur les options de configuration, consultez la section suivante.

$listeners

array

Non

Tableau d'TransferListenerobjets permettant de surveiller ce téléchargement.

$progressTracker

TransferListener

Non

Un outil de suivi de la progression de ce téléchargement.

Le SDK résout la $config valeur par défaut à partir de la configuration du gestionnaire de transfert S3.

Option Type Obligatoire Description

multipart_upload_threshold_bytes

int

Non

Remplace le seuil par défaut lorsqu'un téléchargement partitionné est déclenché.

target_part_size_bytes

int

Non

Remplace la taille de pièce cible par défaut en octets.

track_progress

bool

Non

Remplace l'option par défaut pour activer le suivi de la progression. Si cette option existe true et que vous ne fournissez aucun progressTracker paramètre, le SDK utilise une implémentation par défaut.

concurrency

int

Non

Remplace la valeur par défaut pour la simultanéité.

request_checksum_calculation

chaîne

Non

Remplace la valeur par défaut indiquant si le calcul de la somme de contrôle de la demande doit être effectué.

Lorsque la upload méthode s'exécute correctement, elle renvoie un UploadResult<add link>.

Télécharger des objets S3

Pour télécharger un objet depuis Amazon S3, utilisez la download <add link> méthode.

<?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();

Paramètres de la méthode download

La download méthode accepte une instance de DownloadRequest <add link> comme argument.

Paramètres dans l’DownloadRequest

Paramètre Type Obligatoire Description

$source

chaîne|tableau| null

Non

L'objet à télécharger depuis S3. Vous pouvez fournir ce paramètre sous la forme d'une chaîne d'URI S3 (» s3://amzn-s3-demo-bucket/key «), d'un tableau avec les clés Bucket et Key, ounull. Lorsque cette valeur est définienull, transmettez les valeurs Bucket et Key dans le $downloadRequestArgs paramètre.

$downloadRequestArgs

array

Non

Arguments de demande d'objet de téléchargement supplémentaires. Dans $source l'affirmativenull, indiquez les valeurs du bucket et de la clé ici.

$config

array

Non

Les remplacements de configuration spécifiques à ce téléchargement. Pour plus d'informations sur les options de configuration, consultez la section suivante.

$downloadHandler

AbstractDownloadHandler<add link>|null

Non

Le gestionnaire qui reçoit chaque fragment d'objet et gère son téléchargement.

Le gestionnaire par défaut de la download méthode utilise un gestionnaire basé sur les flux. Ce gestionnaire pousse chaque fragment d'objet dans un flux.

Le gestionnaire par défaut de la downloadFile méthode (voirTélécharger un objet S3 dans un fichier local) utilise un gestionnaire basé sur des fichiers. Ce gestionnaire écrit chaque fragment dans un fichier.

Vous pouvez implémenter le vôtre DownloadHandler pour personnaliser l'emplacement et la manière dont le SDK stocke les données téléchargées. Par exemple, vous pouvez stocker des données dans des bases de données, un stockage dans le cloud ou des pipelines de traitement personnalisés au lieu de fichiers ou de flux.

$progressTracker

TransferListener

Non

Un outil de suivi de la progression de ce téléchargement.

$listeners

array

Non

Tableau d'AbstractTransferListenerobjets permettant de surveiller ce téléchargement.

Le SDK résout la $config valeur par défaut à partir de la configuration du gestionnaire de transfert S3.

Option Type Obligatoire Description

multipart_download_type

chaîne

Non

Remplace le type de téléchargement en plusieurs parties par défaut. Les valeurs valides sont « part », « ranged »

response_checksum_validation

chaîne

Non

Remplace la valeur résolue dans la configuration du gestionnaire de transfert pour déterminer si la validation de la somme de contrôle doit être effectuée. Le SDK prend en compte cette option uniquement si elle n'ChecksumModeest pas présente dans $getObjectRequestArgs leDownloadRequest.

track_progress

bool

Non

Remplace l'option par défaut permettant d'activer le suivi de la progression. Si cette option existe true et que vous ne fournissez pas de progressTracker paramètre avec DownloadRequest, le SDK, il utilise une implémentation par défaut.

Utilisez cette option pour activer un outil de suivi de progression par défaut lorsque le $progressTracker paramètre est défini surnull.

target_part_size_bytes

int

Non

Taille de partie en octets à utiliser dans un téléchargement multipartie par plage. Si vous ne fournissez pas ce paramètre, le téléchargement utilise le paramètre target_part_size_bytes configuré dans le gestionnaire de transfert.

Lorsque la download méthode s'exécute correctement, elle renvoie un DownloadResult<add link>.

Télécharger un objet S3 dans un fichier local

Pour télécharger un objet S3 directement dans un fichier local, utilisez la downloadFile méthode suivante :

<?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";

Paramètres de la méthode downloadFile

La downloadFile méthode accepte une instance de DownloadFileRequest comme argument.

Paramètres dans l’DownloadFileRequest

Option Type Obligatoire Description

$destination

chaîne

Oui

Chemin local dans lequel le fichier est enregistré.

$failsWhenDestinationExists

bool

Oui

S'il faut échouer si le fichier de destination existe déjà. Si cette option est activée false et que le fichier de destination existe, le SDK supprime ou remplace le fichier existant.

$downloadRequest

DownloadRequest

Oui

L'DownloadRequestobjet configuré. Pour plus d'informations, voir DownloadRequestobjet.

Lorsque la downloadFile méthode s'exécute correctement, elle renvoie un DownloadResult<add link>.