Dateioperationen - AWS SDK für PHP

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Dateioperationen

S3 Transfer Manager bietet Methoden zum Hoch- und Herunterladen einzelner Dateien.

Laden Sie lokale Dateien hoch

Verwenden Sie die upload <add link> Methode, um eine Datei auf Amazon S3 hochzuladen.

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

Parameter für die upload-Methode

Die upload Methode akzeptiert eine Instanz von UploadRequest <add link> als Argument.

UploadRequest-Parameter

Parameter Typ Erforderlich Description

$source

Zeichenkette| StreamInterface

Ja

Pfad des lokalen Dateipfads oder Streams, der die hochzuladenden Daten enthält.

$uploadRequestArgs

Array

Ja

Argumente für die Upload-Anforderung (müssen Bucket und Key enthalten).

$config

Array

Nein

Spezifische Konfigurationsüberschreibungen für diesen Upload. Weitere Informationen zu den Konfigurationsoptionen finden Sie im folgenden Abschnitt.

$listeners

Array

Nein

Array von TransferListener Objekten zur Überwachung dieses Uploads.

$progressTracker

TransferListener

Nein

Ein Fortschritts-Tracker für diesen Upload.

Das SDK löst den $config Standardwert aus der Konfiguration des S3 Transfer Managers auf.

Option Typ Erforderlich Description

multipart_upload_threshold_bytes

int

Nein

Setzt den Standardschwellenwert für den Fall außer Kraft, dass ein mehrteiliger Upload ausgelöst wird.

target_part_size_bytes

int

Nein

Setzt die standardmäßige Zielteilgröße in Byte außer Kraft.

track_progress

bool

Nein

Überschreibt die Standardoption, um die Fortschrittsverfolgung zu aktivieren. Wenn diese Option aktiviert ist true und Sie keinen progressTracker Parameter angeben, verwendet das SDK eine Standardimplementierung.

concurrency

int

Nein

Setzt den Standardwert für Parallelität außer Kraft.

request_checksum_calculation

Zeichenfolge

Nein

Setzt den Standardwert für die Angabe außer Kraft, ob eine Prüfsummenberechnung für eine Anfrage durchgeführt werden muss.

Wenn die upload Methode erfolgreich ausgeführt wird, gibt sie eine zurück. UploadResult <add link>

Laden Sie S3-Objekte herunter

Verwenden Sie die download <add link> Methode, um ein Objekt von Amazon S3 herunterzuladen.

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

Parameter für die download-Methode

Die download Methode akzeptiert eine Instanz von DownloadRequest <add link> als Argument.

DownloadRequest-Parameter

Parameter Typ Erforderlich Description

$source

Zeichenkette|Matrix| null

Nein

Das Objekt, das von S3 heruntergeladen werden soll. Sie können diesen Parameter als S3-URI-Zeichenfolge (“ s3://amzn-s3-demo-bucket/key „), als Array mit Bucket- und Key-Schlüsseln oder angebennull. Wenn dieser Wert lautetnull, übergeben Sie die Bucket- und Key-Werte im $downloadRequestArgs Parameter.

$downloadRequestArgs

Array

Nein

Zusätzliche Argumente für die Anforderung von Download-Objekten. Falls ja $sourcenull, geben Sie hier die Bucket- und Key-Werte an.

$config

Array

Nein

Spezifische Konfigurationsüberschreibungen für diesen Download. Weitere Informationen zu den Konfigurationsoptionen finden Sie im folgenden Abschnitt.

$downloadHandler

AbstractDownloadHandler<add link>|null

Nein

Der Handler, der jeden Objektblock empfängt und dessen Download verwaltet.

Der Standard-Handler für die download Methode verwendet einen Stream-basierten Handler. Dieser Handler schiebt jeden Objekt-Chunk in einen Stream.

Der Standard-Handler für die downloadFile Methode (sieheLaden Sie ein S3-Objekt in eine lokale Datei herunter) verwendet einen dateibasierten Handler. Dieser Handler schreibt jeden Chunk in eine Datei.

Sie können Ihre eigenen implementierenDownloadHandler, um anzupassen, wo und wie das SDK heruntergeladene Daten speichert. Sie können beispielsweise Daten in Datenbanken, Cloud-Speichern oder benutzerdefinierten Verarbeitungspipelines statt in Dateien oder Streams speichern.

$progressTracker

TransferListener

Nein

Ein Fortschritts-Tracker für diesen Download.

$listeners

array

Nein

Reihe von AbstractTransferListener Objekten zur Überwachung dieses Downloads.

Das SDK löst den $config Standardwert aus der Konfiguration des S3 Transfer Managers auf.

Option Typ Erforderlich Beschreibung

multipart_download_type

Zeichenfolge

Nein

Setzt den standardmäßigen mehrteiligen Downloadtyp außer Kraft. Gültige Werte sind „Teil“, „Bereich“

response_checksum_validation

Zeichenfolge

Nein

Überschreibt den in der Transfer-Manager-Konfiguration aufgelösten Wert, der angibt, ob die Prüfsummenvalidierung durchgeführt werden soll. Das SDK berücksichtigt diese Option nur, wenn sie nicht in der $getObjectRequestArgs von vorhanden ChecksumMode ist. DownloadRequest

track_progress

bool

Nein

Setzt die Standardoption für die Aktivierung der Fortschrittsverfolgung außer Kraft. Wenn diese Option aktiviert ist true und Sie keinen progressTracker Parameter angeben, verwendet DownloadRequest, das SDK eine Standardimplementierung.

Verwenden Sie diese Option, um einen Standard-Fortschritts-Tracker zu aktivieren, wenn der $progressTracker Parameter lautetnull.

target_part_size_bytes

int

Nein

Die Größe des Teils in Byte, das bei einem mehrteiligen Range-Download verwendet werden soll. Wenn Sie diesen Parameter nicht angeben, verwendet der Download den im Transfer Manager target_part_size_bytes konfigurierten Parameter.

Wenn die download Methode erfolgreich ausgeführt wird, gibt sie eine zurück DownloadResult<add link>.

Laden Sie ein S3-Objekt in eine lokale Datei herunter

Verwenden Sie die folgende downloadFile Methode, um ein S3-Objekt direkt in eine lokale Datei herunterzuladen:

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

Parameter für die downloadFile-Methode

Die downloadFile Methode akzeptiert eine Instanz von DownloadFileRequest als Argument.

DownloadFileRequest-Parameter

Option Typ Erforderlich Beschreibung

$destination

Zeichenfolge

Ja

Lokaler Pfad, in dem die Datei gespeichert ist.

$failsWhenDestinationExists

bool

Ja

Ob ein Fehler auftreten soll, wenn die Zieldatei bereits existiert. Wenn diese Option aktiviert ist false und die Zieldatei existiert, löscht oder überschreibt das SDK die vorhandene Datei.

$downloadRequest

DownloadRequest

Ja

Das konfigurierte ObjektDownloadRequest. Weitere Informationen finden Sie unter DownloadRequestObjekt.

Wenn die downloadFile Methode erfolgreich ausgeführt wird, gibt sie a zurück DownloadResult<add link>.