全部产品
Search
文档中心

Object Storage Service:Akselerasi transfer (PHP SDK V2)

更新时间:Nov 09, 2025

Akselerasi transfer meningkatkan kecepatan akses ke OSS bagi pengguna di seluruh dunia. Fitur ini ideal untuk skenario seperti transmisi data jarak jauh serta unggah atau unduh file besar berukuran gigabyte hingga terabyte.

Perhatian

  • Kode contoh dalam topik ini menggunakan Wilayah China (Hangzhou) sebagai referensi, dengan ID wilayah cn-hangzhou. Secara default, titik akhir publik digunakan. Jika Anda ingin mengakses OSS dari layanan Alibaba Cloud lainnya di wilayah yang sama, gunakan titik akhir internal. Untuk informasi lebih lanjut tentang wilayah dan titik akhir yang didukung oleh OSS, lihat Wilayah dan Titik Akhir.

Kode contoh

Mengaktifkan akselerasi transfer

Berikut adalah kode contoh untuk mengaktifkan fitur akselerasi transfer pada sebuah bucket:

<?php

// Impor file autoloader untuk memuat dependensi.
require_once __DIR__ . '/../vendor/autoload.php';

use AlibabaCloud\Oss\V2 as Oss;

// Tentukan deskripsi argumen baris perintah.
$optsdesc = [
    "region" => ['help' => 'Wilayah tempat bucket berada.', 'required' => True], // Wilayah diperlukan. Wilayah tempat bucket berada.
    "endpoint" => ['help' => 'Nama domain yang dapat digunakan layanan lain untuk mengakses OSS.', 'required' => False], // Endpoint bersifat opsional. Nama domain yang dapat digunakan layanan lain untuk mengakses OSS.
    "bucket" => ['help' => 'Nama bucket', 'required' => True], // Nama bucket diperlukan.
];

// Hasilkan daftar opsi panjang untuk mengurai argumen baris perintah.
$longopts = \array_map(function ($key) {
    return "$key:"; // Tanda titik dua ditambahkan setelah setiap parameter untuk menunjukkan bahwa nilai diperlukan.
}, array_keys($optsdesc));

// Uraikan argumen baris perintah.
$options = getopt("", $longopts);

// Periksa apakah parameter yang diperlukan hilang.
foreach ($optsdesc as $key => $value) {
    if ($value['required'] === True && empty($options[$key])) {
        $help = $value['help'];
        echo "Error: argumen berikut diperlukan: --$key, $help"; // Beri tahu pengguna bahwa parameter yang diperlukan tidak ada.
        exit(1);
    }
}

// Dapatkan nilai argumen baris perintah.
$region = $options["region"]; // Wilayah tempat bucket berada.
$bucket = $options["bucket"]; // Nama bucket.

// Muat kredensial, termasuk ID AccessKey dan Rahasia AccessKey, dari variabel lingkungan.
$credentialsProvider = new Oss\Credentials\EnvironmentVariableCredentialsProvider();

// Gunakan konfigurasi default dari SDK.
$cfg = Oss\Config::loadDefault();

// Tetapkan penyedia kredensial.
$cfg->setCredentialsProvider($credentialsProvider);

// Tetapkan wilayah.
$cfg->setRegion($region);

// Jika endpoint disediakan, tetapkan endpoint.
if (isset($options["endpoint"])) {
    $cfg->setEndpoint($options["endpoint"]);
}

// Buat instance klien OSS.
$client = new Oss\Client($cfg);

// Buat objek permintaan untuk mengaktifkan akselerasi transfer untuk bucket.
$request = new Oss\Models\PutBucketTransferAccelerationRequest(
    bucket: $bucket, // Nama bucket.
    transferAccelerationConfiguration: new Oss\Models\TransferAccelerationConfiguration(
        enabled: true // Aktifkan akselerasi transfer.
    )
);

// Panggil metode putBucketTransferAcceleration untuk mengaktifkan akselerasi transfer untuk bucket.
$result = $client->putBucketTransferAcceleration($request);

// Cetak hasilnya.
printf(
    'status code:' . $result->statusCode . PHP_EOL . // Kode status HTTP dari tanggapan.
    'request id:' . $result->requestId . PHP_EOL     // ID unik dari permintaan.
);

Memeriksa status akselerasi transfer

Berikut adalah kode contoh untuk memeriksa status akselerasi transfer sebuah bucket:

<?php

// Impor file autoloader untuk memuat dependensi.
require_once __DIR__ . '/../vendor/autoload.php';

use AlibabaCloud\Oss\V2 as Oss;

// Tentukan deskripsi argumen baris perintah.
$optsdesc = [
    "region" => ['help' => 'Wilayah tempat bucket berada.', 'required' => True], // Wilayah diperlukan. Wilayah tempat bucket berada.
    "endpoint" => ['help' => 'Nama domain yang dapat digunakan layanan lain untuk mengakses OSS.', 'required' => False], // Endpoint bersifat opsional. Nama domain yang dapat digunakan layanan lain untuk mengakses OSS.
    "bucket" => ['help' => 'Nama bucket', 'required' => True], // Nama bucket diperlukan.
];

// Hasilkan daftar opsi panjang untuk mengurai argumen baris perintah.
$longopts = \array_map(function ($key) {
    return "$key:"; // Tanda titik dua ditambahkan setelah setiap parameter untuk menunjukkan bahwa nilai diperlukan.
}, array_keys($optsdesc));

// Uraikan argumen baris perintah.
$options = getopt("", $longopts);

// Periksa apakah parameter yang diperlukan hilang.
foreach ($optsdesc as $key => $value) {
    if ($value['required'] === True && empty($options[$key])) {
        $help = $value['help'];
        echo "Error: argumen berikut diperlukan: --$key, $help"; // Beri tahu pengguna bahwa parameter yang diperlukan tidak ada.
        exit(1);
    }
}

// Dapatkan nilai argumen baris perintah.
$region = $options["region"]; // Wilayah tempat bucket berada.
$bucket = $options["bucket"]; // Nama bucket.

// Muat kredensial, termasuk ID AccessKey dan Rahasia AccessKey, dari variabel lingkungan.
$credentialsProvider = new Oss\Credentials\EnvironmentVariableCredentialsProvider();

// Gunakan konfigurasi default dari SDK.
$cfg = Oss\Config::loadDefault();

// Tetapkan penyedia kredensial.
$cfg->setCredentialsProvider($credentialsProvider);

// Tetapkan wilayah.
$cfg->setRegion($region);

// Jika endpoint disediakan, tetapkan endpoint.
if (isset($options["endpoint"])) {
    $cfg->setEndpoint($options["endpoint"]);
}

// Buat instance klien OSS.
$client = new Oss\Client($cfg);

// Buat objek permintaan untuk memeriksa status akselerasi transfer bucket.
$request = new Oss\Models\GetBucketTransferAccelerationRequest(
    bucket: $bucket // Nama bucket.
);

// Panggil metode getBucketTransferAcceleration untuk memeriksa status akselerasi transfer bucket.
$result = $client->getBucketTransferAcceleration($request);

// Cetak hasilnya.
printf(
    'status code:' . $result->statusCode . PHP_EOL . // Kode status HTTP dari tanggapan.
    'request id:' . $result->requestId . PHP_EOL .   // ID unik dari permintaan.
    'status akselerasi transfer:' . var_export($result->transferAccelerationConfiguration->enabled, true) . PHP_EOL // Status yang menunjukkan apakah akselerasi transfer diaktifkan.
);

Referensi