全部产品
Search
文档中心

Object Storage Service:Unggah sederhana menggunakan OSS SDK untuk PHP 2.0

更新时间:Aug 07, 2025

Topik ini menjelaskan cara dengan cepat mengunggah file lokal ke Object Storage Service (OSS) menggunakan metode unggah sederhana. Metode ini cocok untuk skenario di mana Anda ingin segera mengunggah file lokal.

Catatan penggunaan

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

  • Untuk menggunakan unggah sederhana, Anda harus memiliki izin oss:PutObject. Untuk informasi lebih lanjut, lihat Lampirkan Kebijakan Kustom ke Pengguna RAM.

  • Dalam topik ini, kredensial akses diperoleh dari variabel lingkungan. Untuk informasi lebih lanjut, lihat Konfigurasikan Kredensial Akses untuk OSS SDK untuk PHP.

Kode contoh

Berikut adalah kode contoh yang menunjukkan cara mengunggah file lokal ke bucket:

<?php

// Masukkan file autoload untuk memuat pustaka dependen.
require_once __DIR__ . '/../vendor/autoload.php';

use AlibabaCloud\Oss\V2 as Oss;

// Tentukan deskripsi untuk parameter baris perintah.
$optsdesc = [
    "region" => ['help' => Wilayah tempat bucket berada.', 'required' => True], // (Diperlukan) Tentukan wilayah tempat bucket berada.
    "endpoint" => ['help' => Nama domain yang dapat digunakan layanan lain untuk mengakses OSS.', 'required' => False], // (Opsional) Tentukan titik akhir yang dapat digunakan oleh layanan lain untuk mengakses OSS.
    "bucket" => ['help' => Nama bucket, 'required' => True], // (Diperlukan) Tentukan nama bucket.
    "key" => ['help' => Nama objek, 'required' => True], // (Diperlukan) Tentukan nama objek.
    "file" => ['help' => 'Jalur lokal ke file yang ingin Anda unggah.', 'required' => True], // (Diperlukan) Tentukan jalur file lokal.
];

// Ubah deskripsi parameter menjadi daftar opsi panjang yang diperlukan oleh getopt.
// Tambahkan titik dua (:) di akhir setiap parameter untuk menunjukkan bahwa nilai diperlukan.
$longopts = \array_map(function ($key) {
    return "$key:";
}, array_keys($optsdesc));

// Parsing parameter baris perintah.
$options = getopt("", $longopts);

// Periksa apakah parameter yang diperlukan telah dikonfigurasi.
foreach ($optsdesc as $key => $value) {
    if ($value['required'] === True && empty($options[$key])) {
        $help = $value['help']; // Dapatkan informasi bantuan tentang parameter.
        echo "Error: argumen berikut diperlukan: --$key, $help" . PHP_EOL;
        exit(1); // Jika parameter yang diperlukan tidak dikonfigurasi, keluar dari program.
    }
}

// Dapatkan nilai dari parameter yang telah diparsing.
$region = $options["region"]; // Wilayah tempat bucket berada.
$bucket = $options["bucket"]; // Nama bucket.
$key = $options["key"]; // Nama objek.
$file = $options["file"]; // Jalur file lokal.

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

// Gunakan konfigurasi default dari SDK.
$cfg = Oss\Config::loadDefault();
$cfg->setCredentialsProvider($credentialsProvider); // Tentukan penyedia kredensial.
$cfg->setRegion($region); // Tentukan wilayah tempat bucket berada.
if (isset($options["endpoint"])) {
    $cfg->setEndpoint($options["endpoint"]); // Tentukan titik akhir jika titik akhir disediakan.
}

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

// Periksa apakah file lokal ada.
if (!file_exists($file)) {
    echo "Error: File yang ditentukan tidak ada." . PHP_EOL; // Jika file lokal tidak ada, tampilkan pesan kesalahan dan keluar dari program.
    exit(1);
}

// Buka file lokal dan siapkan tugas unggah sederhana.
// Gunakan fopen untuk membuka file lokal dalam mode baca saja dan ubah file menjadi aliran menggunakan Utils::streamFor.
$body = Oss\Utils::streamFor(fopen($file, 'r'));

// Buat objek PutObjectRequest untuk mengunggah file lokal.
$request = new Oss\Models\PutObjectRequest(bucket: $bucket, key: $key);
$request->body = $body; // Tentukan bahwa badan permintaan HTTP adalah aliran file.

// Eksekusi permintaan unggah sederhana.
$result = $client->putObject($request);

// Tampilkan hasil permintaan unggah sederhana.
// Tampilkan kode status HTTP, ID permintaan, dan ETag objek untuk memeriksa apakah permintaan berhasil.
printf(
    'kode status:' . $result->statusCode . PHP_EOL . // Kode status HTTP. Misalnya, kode status HTTP 200 menunjukkan bahwa permintaan berhasil.
    'ID permintaan:' . $result-> requestId. PHP_EOL // ID permintaan, yang digunakan untuk debugging atau melacak permintaan.
    'etag:' . $result->etag . PHP_EOL // ETag objek, yang digunakan untuk mengidentifikasi konten objek.
);

Skenario umum

Unggah string

Berikut adalah kode contoh yang menunjukkan cara mengunggah string ke bucket:

<?php

// Impor file autoload untuk memuat pustaka dependen.
require_once __DIR__ . '/../vendor/autoload.php';

use AlibabaCloud\Oss\V2 as Oss;

// Tentukan deskripsi untuk parameter baris perintah.
$optsdesc = [
    "region" => ['help' => Wilayah tempat bucket berada.', 'required' => True], // (Diperlukan) Tentukan wilayah tempat bucket berada.
    "endpoint" => ['help' => Nama domain yang dapat digunakan layanan lain untuk mengakses OSS.', 'required' => False], // (Opsional) Tentukan titik akhir yang dapat digunakan oleh layanan lain untuk mengakses OSS.
    "bucket" => ['help' => Nama bucket, 'required' => True], // (Diperlukan) Tentukan nama bucket.
    "key" => ['help' => Nama objek, 'required' => True], // (Diperlukan) Tentukan nama objek.
];

// Konversi deskripsi parameter menjadi daftar opsi panjang yang diperlukan oleh getopt.
$longopts = \array_map(function ($key) {
    return "$key:"; // Tambahkan titik dua (:) di akhir setiap parameter untuk menunjukkan bahwa nilai diperlukan.
}, array_keys($optsdesc));

// Parsing parameter baris perintah.
$options = getopt("", $longopts);

// Periksa apakah parameter yang diperlukan telah dikonfigurasi.
foreach ($optsdesc as $key => $value) {
    if ($value['required'] === True && empty($options[$key])) {
        $help = $value['help']; // Dapatkan informasi bantuan tentang parameter.
        echo "Error: argumen berikut diperlukan: --$key, $help" . PHP_EOL;
        exit(1); // Jika parameter yang diperlukan tidak dikonfigurasi, keluar dari program.
    }
}

// Dapatkan nilai dari parameter yang telah diparsed.
$region = $options["region"]; // Wilayah tempat bucket berada.
$bucket = $options["bucket"]; // Nama bucket.
$key = $options["key"]; // Nama objek.

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

// Gunakan konfigurasi default dari SDK.
$cfg = Oss\Config::loadDefault();
$cfg->setCredentialsProvider($credentialsProvider); // Tentukan penyedia kredensial.
$cfg->setRegion($region); // Tentukan wilayah tempat bucket berada.
if (isset($options["endpoint"])) {
    $cfg->setEndpoint($options["endpoint"]); // Tentukan titik akhir jika titik akhir disediakan.
}

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

// Tentukan konten yang ingin Anda unggah.
$data = 'Halo OSS';

// Buat objek PutObjectRequest untuk mengunggah file lokal.
$request = new Oss\Models\PutObjectRequest(bucket: $bucket, key: $key);
$request-> body=Oss\Utils::streamFor($data); // Tentukan bahwa badan permintaan HTTP adalah aliran biner.

// Eksekusi permintaan unggah sederhana.
$result = $client->putObject($request);

// Tampilkan hasil permintaan unggah sederhana.
printf(
    'kode status: %s' . PHP_EOL . // Kode status HTTP.
    'id permintaan: %s' . PHP_EOL . // ID permintaan.
    'etag: %s' . PHP_EOL, // ETag objek.
    $result->statusCode,
    $result->requestId,
    $result->etag
);

Unggah larik byte

Berikut adalah kode contoh yang menunjukkan cara mengunggah larik byte ke bucket:

<?php

// Masukkan file autoload untuk memuat pustaka dependen.
require_once __DIR__ . '/../vendor/autoload.php';

use AlibabaCloud\Oss\V2 as Oss;

// Tentukan deskripsi untuk parameter baris perintah.
$optsdesc = [
    "region" => ['help' => Wilayah tempat bucket berada.', 'required' => True], // (Diperlukan) Tentukan wilayah tempat bucket berada.
    "endpoint" => ['help' => Nama domain yang dapat digunakan layanan lain untuk mengakses OSS.', 'required' => False], // (Opsional) Tentukan titik akhir yang dapat digunakan oleh layanan lain untuk mengakses OSS.
    "bucket" => ['help' => Nama bucket, 'required' => True], // (Diperlukan) Tentukan nama bucket.
    "key" => ['help' => Nama objek, 'required' => True], // (Diperlukan) Tentukan nama objek.
];

// Ubah deskripsi parameter menjadi daftar opsi panjang yang diperlukan oleh getopt.
$longopts = \array_map(function ($key) {
    return "$key:"; // Tambahkan titik dua (:) di akhir setiap parameter untuk menunjukkan bahwa nilai diperlukan.
}, array_keys($optsdesc));

// Parsing parameter baris perintah.
$options = getopt("", $longopts);

// Periksa apakah parameter yang diperlukan telah dikonfigurasi.
foreach ($optsdesc as $key => $value) {
    if ($value['required'] === True && empty($options[$key])) {
        $help = $value['help']; // Dapatkan informasi bantuan tentang parameter.
        echo "Error: argumen berikut diperlukan: --$key, $help" . PHP_EOL;
        exit(1); // Jika parameter yang diperlukan tidak dikonfigurasi, keluar dari program.
    }
}

// Dapatkan nilai dari parameter yang telah diparsed.
$region = $options["region"]; // Wilayah tempat bucket berada.
$bucket = $options["bucket"]; // Nama bucket.
$key = $options["key"]; // Nama objek.

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

// Gunakan konfigurasi default dari SDK.
$cfg = Oss\Config::loadDefault();
$cfg->setCredentialsProvider($credentialsProvider); // Tentukan penyedia kredensial.
$cfg->setRegion($region); // Tentukan wilayah tempat bucket berada.
if (isset($options["endpoint"])) {
    $cfg->setEndpoint($options["endpoint"]); // Tentukan titik akhir jika titik akhir disediakan.
}

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

// Tentukan larik byte yang ingin Anda unggah.
$dataBytes = [72, 101, 108, 108, 111, 32, 79, 83, 83]; // Nilai ASCII dari 'Hello OSS'.
$dataString = implode(array_map('chr', $dataBytes)); // Ubah larik byte menjadi string.

// Buat objek PutObjectRequest untuk mengunggah file lokal.
$request = new Oss\Models\PutObjectRequest(bucket: $bucket, key: $key);
$request->body = Oss\Utils::streamFor($dataString); // Tentukan bahwa badan permintaan HTTP adalah aliran biner.

// Eksekusi permintaan unggah sederhana.
$result = $client->putObject($request);

// Tampilkan hasil permintaan unggah sederhana.
printf(
    'kode status: %s' . PHP_EOL . // Kode status HTTP.
    'ID permintaan: %s' . PHP_EOL . // ID permintaan.
    'etag: %s' . PHP_EOL, // ETag objek.
    $result->statusCode,
    $result->requestId,
    $result->etag
);

Unggah aliran jaringan

Berikut adalah kode contoh yang menunjukkan cara mengunggah aliran jaringan ke bucket:

<?php

// Impor file autoload untuk memuat pustaka dependen.
require_once __DIR__ . '/../vendor/autoload.php';

use AlibabaCloud\Oss\V2 as Oss;

// Tentukan deskripsi untuk parameter baris perintah.
$optsdesc = [
    "region" => ['help' => Wilayah tempat bucket berada.', 'required' => True], // (Diperlukan) Tentukan wilayah tempat bucket berada.
    "endpoint" => ['help' => Nama domain yang dapat digunakan layanan lain untuk mengakses OSS.', 'required' => False], // (Opsional) Tentukan titik akhir yang dapat digunakan oleh layanan lain untuk mengakses OSS.
    "bucket" => ['help' => Nama bucket, 'required' => True], // (Diperlukan) Tentukan nama bucket.
    "key" => ['help' => Nama objek, 'required' => True], // (Diperlukan) Tentukan nama objek.
];

// Konversi deskripsi parameter menjadi daftar opsi panjang yang diperlukan oleh getopt.
$longopts = \array_map(function ($key) {
    return "$key:"; // Tambahkan titik dua (:) di akhir setiap parameter untuk menunjukkan bahwa nilai diperlukan.
}, array_keys($optsdesc));

// Parsing parameter baris perintah.
$options = getopt("", $longopts);

// Periksa apakah parameter yang diperlukan telah dikonfigurasi.
foreach ($optsdesc as $key => $value) {
    if ($value['required'] === True && empty($options[$key])) {
        $help = $value['help']; // Dapatkan informasi bantuan tentang parameter.
        echo "Error: argumen berikut diperlukan: --$key, $help" . PHP_EOL;
        exit(1); // Jika parameter yang diperlukan tidak dikonfigurasi, keluar dari program.
    }
}

// Dapatkan nilai dari parameter yang telah diparsed.
$region = $options["region"]; // Wilayah tempat bucket berada.
$bucket = $options["bucket"]; // Nama bucket.
$key = $options["key"]; // Nama objek.

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

// Gunakan konfigurasi default dari SDK.
$cfg = Oss\Config::loadDefault();
$cfg->setCredentialsProvider($credentialsProvider); // Tentukan penyedia kredensial.
$cfg->setRegion($region); // Tentukan wilayah tempat bucket berada.
if (isset($options["endpoint"])) {
    $cfg->setEndpoint($options["endpoint"]); // Tentukan titik akhir jika titik akhir disediakan.
}

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

// Query isi file jaringan.
$url = 'https://www.aliyun.com/';
$response = file_get_contents($url);

// Buat objek PutObjectRequest untuk mengunggah file lokal.
$request = new Oss\Models\PutObjectRequest(bucket: $bucket, key: $key);
$request->body = Oss\Utils::streamFor($response); // Tentukan bahwa badan permintaan HTTP adalah aliran biner.

// Eksekusi permintaan unggah sederhana.
$result = $client->putObject($request);

// Tampilkan hasil permintaan unggah sederhana.
printf(
    'kode status: %s' . PHP_EOL . // Kode status HTTP.
    'id permintaan: %s' . PHP_EOL . // ID permintaan.
    'etag: %s' . PHP_EOL, // ETag objek.
    $result->statusCode,
    $result->requestId,
    $result->etag
);

Periksa kemajuan unggah objek

Berikut adalah kode contoh yang menunjukkan cara memeriksa kemajuan unggah objek:

<?php

// Masukkan file autoload untuk memuat pustaka dependen.
require_once __DIR__ . '/../vendor/autoload.php';

use AlibabaCloud\Oss\V2 as Oss;

// Tentukan deskripsi untuk parameter baris perintah.
$optsdesc = [
    "region" => ['help' => Wilayah tempat bucket berada.', 'required' => True], // (Diperlukan) Tentukan wilayah tempat bucket berada.
    "endpoint" => ['help' => Nama domain yang dapat digunakan layanan lain untuk mengakses OSS.', 'required' => False], // (Opsional) Tentukan titik akhir yang dapat digunakan oleh layanan lain untuk mengakses OSS.
    "bucket" => ['help' => Nama bucket, 'required' => True], // (Diperlukan) Tentukan nama bucket.
    "key" => ['help' => Nama objek, 'required' => True], // (Diperlukan) Tentukan nama objek.
];

// Ubah deskripsi parameter menjadi daftar opsi panjang yang diperlukan oleh getopt.
// Tambahkan titik dua (:) di akhir setiap parameter untuk menunjukkan bahwa nilai diperlukan.
$longopts = \array_map(function ($key) {
    return "$key:";
}, array_keys($optsdesc));

// Parsing parameter baris perintah.
$options = getopt("", $longopts);

// Periksa apakah parameter yang diperlukan telah dikonfigurasi.
foreach ($optsdesc as $key => $value) {
    if ($value['required'] === True && empty($options[$key])) {
        $help = $value['help']; // Dapatkan informasi bantuan tentang parameter.
        echo "Error: argumen berikut diperlukan: --$key, $help";
        exit(1); // Jika parameter yang diperlukan tidak dikonfigurasi, keluar dari program.
    }
}

// Dapatkan nilai dari parameter yang telah diparsed.
$region = $options["region"]; // Wilayah tempat bucket berada.
$bucket = $options["bucket"]; // Nama bucket.
$key = $options["key"]; // Nama objek.

// Dapatkan kredensial akses dari variabel EnvironmentVariableCredentialsProvider.
// Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET dikonfigurasi dengan benar.
$credentialsProvider = new Oss\Credentials\EnvironmentVariableCredentialsProvider();

// Muat konfigurasi default dari SDK.
$cfg = Oss\Config::loadDefault();
$cfg->setCredentialsProvider($credentialsProvider); // Tentukan penyedia kredensial.
$cfg->setRegion($region); // Tentukan wilayah tempat bucket berada.

// Jika parameter titik akhir disediakan, tentukan nama domain kustom.
if (isset($options["endpoint"])) {
    $cfg->setEndpoint($options["endpoint"]);
}

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

// Tentukan konten data yang ingin Anda unggah.
$data = 'Hello OSS';

// Buat permintaan PutObjectRequest dan tentukan nama bucket dan nama objek dalam permintaan.
$request = new Oss\Models\PutObjectRequest($bucket, $key);

// Ubah konten data menjadi objek aliran.
$request->body = Oss\Utils::streamFor($data);

// Tentukan fungsi callback kemajuan unggah.
$request->progressFn = function (int $increment, int $transferred, int $total) {
    echo sprint("Diunggah:%d" . PHP_EOL, $transferred); // Jumlah byte yang diunggah.
    echo sprint("Unggahan ini:%d" . PHP_EOL, $increment); // Jumlah byte tambahan yang diunggah.
    echo sprint("Total data:%d" . PHP_EOL, $total); // Ukuran total objek.
    echo '-------------------------------------------'. PHP_EOL; // Pembatas garis putus-putus.
};

// Gunakan metode putObject untuk mengunggah file lokal.
$result = $client->putObject($request);

// Tampilkan hasil permintaan unggah sederhana.
printf(
    'kode status: %s' . PHP_EOL, $result->statusCode . // Kode status HTTP yang dikembalikan.
    'ID permintaan: %s' . PHP_EOL, $result->requestId . // ID permintaan.
    'etag: %s' . PHP_EOL, $result->etag // ETag objek.
);

Konfigurasikan callback saat Anda mengunggah file lokal

OSS dapat mengirim callback ke server aplikasi saat tugas unggah sederhana selesai. Untuk mengonfigurasi callback unggah, Anda hanya perlu menentukan parameter callback terkait dalam permintaan unggah yang dikirim ke OSS.

Berikut adalah kode contoh yang menunjukkan cara mengonfigurasi callback saat Anda mengunggah file lokal:

<?php

// Masukkan file autoload untuk memuat pustaka dependen.
require_once __DIR__ . '/../vendor/autoload.php';

use AlibabaCloud\Oss\V2 as Oss;

// Tentukan deskripsi untuk parameter baris perintah.
$optsdesc = [
    "region" => ['help' => Wilayah tempat bucket berada.', 'required' => True], // (Diperlukan) Tentukan wilayah tempat bucket berada.
    "endpoint" => ['help' => Nama domain yang dapat digunakan layanan lain untuk mengakses OSS.', 'required' => False], // (Opsional) Tentukan titik akhir yang dapat digunakan oleh layanan lain untuk mengakses OSS.
    "bucket" => ['help' => Nama bucket, 'required' => True], // (Diperlukan) Tentukan nama bucket.
    "key" => ['help' => Nama objek, 'required' => True], // (Diperlukan) Tentukan nama objek.
];

// Ubah deskripsi parameter menjadi daftar opsi panjang yang diperlukan oleh getopt.
// Tambahkan titik dua (:) di akhir setiap parameter untuk menunjukkan bahwa nilai diperlukan.
$longopts = \array_map(function ($key) {
    return "$key:";
}, array_keys($optsdesc));

// Parsing parameter baris perintah.
$options = getopt("", $longopts);

// Periksa apakah parameter yang diperlukan telah dikonfigurasi.
foreach ($optsdesc as $key => $value) {
    if ($value['required'] === True && empty($options[$key])) {
        $help = $value['help']; // Dapatkan informasi bantuan tentang parameter.
        echo "Error: argumen berikut diperlukan: --$key, $help" . PHP_EOL;
        exit(1); // Jika parameter yang diperlukan tidak dikonfigurasi, keluar dari program.
    }
}

// Dapatkan nilai dari parameter yang telah diparsed.
$region = $options["region"]; // Wilayah tempat bucket berada.
$bucket = $options["bucket"]; // Nama bucket.
$key = $options["key"]; // Nama objek.

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

// Gunakan konfigurasi default dari SDK.
$cfg = Oss\Config::loadDefault();
$cfg->setCredentialsProvider($credentialsProvider); // Tentukan penyedia kredensial.
$cfg->setRegion($region); // Tentukan wilayah tempat bucket berada.
if (isset($options["endpoint"])) {
    $cfg->setEndpoint($options["endpoint"]); // Tentukan titik akhir jika titik akhir disediakan.
}

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

// Tentukan informasi tentang server callback.
// Tentukan URL callback, yaitu alamat server yang menerima permintaan callback.
// Tentukan host callback, yaitu nama host server callback.
// Tentukan badan callback, yaitu template yang digunakan untuk menentukan konten callback. Placeholder dinamis didukung.
// Tentukan jenis badan callback, yaitu format konten callback.
$callback = base64_encode(json_encode(array(
    'callbackUrl' => yourCallbackServerUrl, // Ganti yourCallbackServerUrl dengan URL server callback aktual.
    'callbackHost' => 'CallbackHost', // Ganti CallbackHost dengan nama host server callback aktual.
    'callbackBody' => 'bucket=${bucket}&object=${object}&etag=${etag}&size=${size}&mimeType=${mimeType}&imageInfo.height=${imageInfo.height}&imageInfo.width=${imageInfo.width}&imageInfo.format=${imageInfo.format}&my_var1=${x:var1}&my_var2=${x:var2}',
    'callbackBodyType' => "application/x-www-form-urlencoded", // Tentukan format konten callback.
)));

// Tentukan variabel kustom untuk menyampaikan informasi tambahan dalam callback.
$callbackVar = base64_encode(json_encode(array(
    'x:var1' => "value1", // Tentukan variabel kustom pertama.
    'x:var2' => 'value2', // Tentukan variabel kustom kedua.
)));

// Buat objek PutObjectRequest untuk mengunggah file lokal.
$request = new Oss\Models\PutObjectRequest(bucket: $bucket, key: $key);
$request->callback = $callback; // Tentukan informasi callback.
$request->callbackVar = $callbackVar; // Tentukan variabel kustom.

// Eksekusi permintaan unggah sederhana.
$result = $client->putObject($request);

// Tampilkan hasil permintaan unggah sederhana.
// Tampilkan kode status HTTP, ID permintaan, dan hasil callback untuk memeriksa apakah permintaan berhasil.
printf(
    'kode status:' . $result->statusCode . PHP_EOL . // Kode status HTTP. Misalnya, kode status HTTP 200 menunjukkan bahwa permintaan berhasil.
    'ID permintaan:' . $result-> requestId. PHP_EOL // ID permintaan, yang digunakan untuk debugging atau melacak permintaan.
    'hasil callback:' . var_export($result->callbackResult, true) . PHP_EOL // Detail hasil callback.
);

Referensi

  • Untuk kode contoh lengkap untuk unggah sederhana, kunjungi GitHub.