Operasi file - AWS SDK untuk PHP

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Operasi file

S3 Transfer Manager menyediakan metode untuk mengunggah dan mengunduh file individual.

Unggah file lokal

Untuk mengunggah file ke Amazon S3, gunakan metode ini upload<add link>.

<?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 metode upload

uploadMetode ini menerima instance dari UploadRequest <add link> sebagai argumen.

Parameter UploadRequest

Parameter Jenis Diperlukan Deskripsi

$source

senar| StreamInterface

Ya

Jalur jalur file lokal atau aliran yang berisi data untuk diunggah.

$uploadRequestArgs

array

Ya

Unggah argumen permintaan (harus menyertakan Bucket dan Key).

$config

array

Tidak

Penggantian konfigurasi khusus untuk unggahan ini. Untuk informasi selengkapnya tentang opsi konfigurasi, lihat bagian berikut.

$listeners

array

Tidak

Array TransferListener objek untuk memantau unggahan ini.

$progressTracker

TransferListener

Tidak

Pelacak kemajuan untuk unggahan ini.

SDK menyelesaikan $config nilai default dari konfigurasi S3 Transfer Manager.

Opsi Jenis Diperlukan Deskripsi

multipart_upload_threshold_bytes

int

Tidak

Mengganti ambang batas default saat unggahan multibagian dipicu.

target_part_size_bytes

int

Tidak

Mengganti ukuran bagian target default dalam byte.

track_progress

bool

Tidak

Mengganti opsi default untuk mengaktifkan pelacakan kemajuan. Jika opsi ini true dan Anda tidak memberikan progressTracker parameter, SDK menggunakan implementasi default.

concurrency

int

Tidak

Mengganti nilai default untuk konkurensi.

request_checksum_calculation

string

Tidak

Mengganti nilai default untuk apakah perhitungan checksum permintaan harus dilakukan.

Ketika upload metode berjalan dengan sukses, ia mengembalikan file UploadResult<add link>.

Unduh objek S3

Untuk mengunduh objek dari Amazon S3, gunakan metode ini download<add link>.

<?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 metode download

downloadMetode ini menerima instance dari DownloadRequest <add link> sebagai argumen.

Parameter DownloadRequest

Parameter Jenis Diperlukan Deskripsi

$source

senar | array| null

Tidak

Objek untuk men-download dari S3. Anda dapat memberikan parameter ini sebagai string URI S3 (” s3://amzn-s3-demo-bucket/key “), array dengan kunci Bucket dan Key, ataunull. Ketika nilai ininull, berikan nilai Bucket dan Key dalam $downloadRequestArgs parameter.

$downloadRequestArgs

array

Tidak

Argumen permintaan objek unduhan tambahan. Jika $source yanull, berikan nilai Bucket dan Key di sini.

$config

array

Tidak

Penggantian konfigurasi khusus untuk unduhan ini. Untuk informasi selengkapnya tentang opsi konfigurasi, lihat bagian berikut.

$downloadHandler

AbstractDownloadHandler<add link>|null

Tidak

Handler yang menerima setiap potongan objek dan mengelola unduhannya.

Handler default untuk download metode ini menggunakan handler berbasis streaming. Handler ini mendorong setiap potongan objek ke dalam aliran.

Handler default untuk downloadFile metode (lihatUnduh objek S3 ke file lokal) menggunakan handler berbasis file. Handler ini menulis setiap potongan ke file.

Anda dapat menerapkan sendiri DownloadHandler untuk menyesuaikan di mana dan bagaimana SDK menyimpan data yang diunduh. Misalnya, Anda dapat menyimpan data dalam database, penyimpanan cloud, atau pipeline pemrosesan khusus, bukan file atau aliran.

$progressTracker

TransferListener

Tidak

Pelacak kemajuan untuk unduhan ini.

$listeners

array

Tidak

Array AbstractTransferListener objek untuk memantau unduhan ini.

SDK menyelesaikan $config nilai default dari konfigurasi S3 Transfer Manager.

Opsi Jenis Diperlukan Deskripsi

multipart_download_type

string

Tidak

Mengganti jenis unduhan multipart default. Nilai yang valid adalah 'bagian', 'berkisar'

response_checksum_validation

string

Tidak

Mengganti nilai yang diselesaikan dari konfigurasi manajer transfer untuk mengetahui apakah validasi checksum harus dilakukan. SDK mempertimbangkan opsi ini hanya jika tidak ChecksumMode ada di $getObjectRequestArgs file. DownloadRequest

track_progress

bool

Tidak

Mengganti opsi default untuk mengaktifkan pelacakan kemajuan. Jika opsi ini true dan Anda tidak memberikan progressTracker parameter dengan SDK menggunakan implementasi default. DownloadRequest,

Gunakan opsi ini untuk mengaktifkan pelacak kemajuan default saat $progressTracker parameternyanull.

target_part_size_bytes

int

Tidak

Ukuran bagian dalam byte untuk digunakan dalam berbagai unduhan multibagian. Jika Anda tidak memberikan parameter ini, unduhan menggunakan target_part_size_bytes konfigurasi pada manajer transfer.

Ketika download metode berjalan dengan sukses, ia mengembalikan file DownloadResult<add link>.

Unduh objek S3 ke file lokal

Untuk mengunduh objek S3 langsung ke file lokal, gunakan downloadFile metode ini:

<?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 metode downloadFile

downloadFileMetode ini menerima instance dari DownloadFileRequest sebagai argumen.

Parameter DownloadFileRequest

Opsi Jenis Diperlukan Deskripsi

$destination

string

Ya

Jalur lokal tempat file disimpan.

$failsWhenDestinationExists

bool

Ya

Apakah akan gagal jika file tujuan sudah ada. Jika opsi ini false dan file tujuan ada, SDK menghapus atau mengganti file yang ada.

$downloadRequest

DownloadRequest

Ya

DownloadRequestObjek yang dikonfigurasi. Untuk informasi lebih lanjut, lihat DownloadRequestobjek.

Ketika downloadFile metode berjalan dengan sukses, ia mengembalikan a DownloadResult<add link>.