Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Operaciones con archivos
S3 Transfer Manager proporciona métodos para cargar y descargar archivos individuales.
Cargue archivos locales
Para cargar un archivo en Amazon S3, utilice el upload <add link> método.
<?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();
Parámetros del método upload
El upload método acepta una instancia de UploadRequest <add link> como argumento.
Parámetros UploadRequest
| Parámetro | Tipo | Obligatorio | Description (Descripción) |
|---|---|---|---|
|
|
cadena| |
Sí |
Ruta del archivo local o del flujo que contiene los datos que se van a cargar. |
|
|
array |
Sí |
Cargue los argumentos de la solicitud (deben incluir Bucket y Key). |
|
|
array |
No |
Las anulaciones de configuración específicas de esta carga. Para obtener más información sobre las opciones de configuración, consulte la siguiente sección. |
|
|
array |
No |
Matriz de |
|
|
TransferListener |
No |
Un rastreador del progreso de esta carga. |
El SDK resuelve el $config valor predeterminado de la configuración del S3 Transfer Manager.
| Opción | Tipo | Obligatorio | Description (Descripción) |
|---|---|---|---|
|
|
int |
No |
Anula el umbral predeterminado para cuando se activa una carga multiparte. |
|
|
int |
No |
Anula el tamaño de la parte de destino predeterminado en bytes. |
|
|
bool |
No |
Anula la opción por defecto para permitir el seguimiento del progreso. Si esta opción es true válida y no proporcionas ningún progressTracker parámetro, el SDK usa una implementación predeterminada. |
|
|
int |
No |
Anula el valor predeterminado de la simultaneidad. |
|
|
cadena |
No |
Anula el valor predeterminado para determinar si se debe realizar el cálculo de la suma de comprobación de una solicitud. |
Cuando el upload método se ejecuta correctamente, devuelve un. UploadResult <add link>
Descarga objetos S3
Para descargar un objeto de Amazon S3, utilice el download <add link> método.
<?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();
Parámetros del método download
El download método acepta una instancia de DownloadRequest <add link> como argumento.
Parámetros DownloadRequest
| Parámetro | Tipo | Obligatorio | Description (Descripción) |
|---|---|---|---|
|
|
cadena|matriz| |
No |
El objeto que se va a descargar de S3. Puede proporcionar este parámetro como una cadena URI de S3 (» s3://amzn-s3-demo-bucket/key «), una matriz con las claves Bucket y Key, o |
|
|
array |
No |
Argumentos adicionales de solicitud de objetos de descarga. Si |
|
|
array |
No |
Sustituciones de configuración específicas de esta descarga. Para obtener más información sobre las opciones de configuración, consulte la siguiente sección. |
$downloadHandler |
|
No |
El controlador que recibe cada fragmento de objeto y gestiona su descarga. El controlador predeterminado del El controlador predeterminado del Puedes implementar el tuyo propio |
|
|
|
No |
Un rastreador de progreso para esta descarga. |
|
|
|
No |
Conjunto de |
El SDK resuelve el $config valor predeterminado de la configuración del S3 Transfer Manager.
| Opción | Tipo | Obligatorio | Descripción |
|---|---|---|---|
|
|
cadena |
No |
Anula el tipo de descarga multiparte predeterminado. Los valores válidos son «parte» y «rango» |
|
|
cadena |
No |
Anula el valor resuelto de la configuración del administrador de transferencias para determinar si se debe realizar la validación de la suma de verificación. El SDK considera esta opción solo si no |
|
|
bool |
No |
Anula la opción predeterminada para habilitar el seguimiento del progreso. Si esta opción es Usa esta opción para habilitar un rastreador de progreso predeterminado cuando el |
|
|
int |
No |
El tamaño de la pieza en bytes que se utilizará en una descarga multiparte de un rango. Si no proporciona este parámetro, la descarga utilizará el |
Cuando el download método se ejecuta correctamente, devuelve un DownloadResult<add link>.
Descarga un objeto S3 a un archivo local
Para descargar un objeto S3 directamente a un archivo local, utilice el downloadFile método:
<?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";
Parámetros del método downloadFile
El downloadFile método acepta una instancia de DownloadFileRequest como argumento.
Parámetros DownloadFileRequest
| Opción | Tipo | Obligatorio | Descripción |
|---|---|---|---|
|
|
string |
Sí |
Ruta local donde se guarda el archivo. |
|
|
bool |
Sí |
Si se va a producir un error si el archivo de destino ya existe. Si esta opción es válida |
|
|
|
Sí |
El objeto configurado |
Cuando el downloadFile método se ejecuta correctamente, devuelve un DownloadResult<add link>.