全部产品
Search
文档中心

Object Storage Service:Unduh objek ke file lokal (PHP SDK V1)

更新时间:Nov 30, 2025

Topik ini menjelaskan cara mengunduh objek dari bucket ke file lokal.

Catatan penggunaan

  • Pada topik ini digunakan titik akhir publik wilayah China (Hangzhou). Untuk mengakses OSS dari layanan Alibaba Cloud lainnya di wilayah yang sama, gunakan titik akhir internal. Untuk informasi selengkapnya mengenai wilayah dan titik akhir yang didukung, lihat Wilayah dan titik akhir.

  • Pada topik ini, instans OSSClient dibuat menggunakan titik akhir OSS. Jika Anda ingin membuat instans OSSClient dengan nama domain kustom atau Security Token Service (STS), lihat Create an OssClient.

Izin

Secara default, Akun Alibaba Cloud memiliki izin penuh. Pengguna RAM atau Peran RAM di bawah Akun Alibaba Cloud tidak memiliki izin apa pun secara default. Akun Alibaba Cloud atau administrator akun harus memberikan izin operasi melalui RAM Policy atau Bucket policies.

API

Action

Definisi

GetObject

oss:GetObject

Mengunduh objek.

oss:GetObjectVersion

Saat mengunduh objek, jika Anda menentukan versi objek melalui versionId, izin ini diperlukan.

kms:Decrypt

Saat mengunduh objek, jika metadata objek berisi X-Oss-Server-Side-Encryption: KMS, izin ini diperlukan.

Kode contoh

Kode berikut mengunduh objek testfolder/exampleobject.txt dari bucket examplebucket dan menyimpannya sebagai examplefile.txt di direktori lokal D:\localpath.

<?php
if (is_file(__DIR__ . '/../autoload.php')) {
    require_once __DIR__ . '/../autoload.php';
}
if (is_file(__DIR__ . '/../vendor/autoload.php')) {
    require_once __DIR__ . '/../vendor/autoload.php';
}
use OSS\Credentials\EnvironmentVariableCredentialsProvider;
use OSS\OssClient;

// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur.
$provider = new EnvironmentVariableCredentialsProvider();
// Tentukan Endpoint untuk wilayah tempat bucket berada. Misalnya, untuk wilayah China (Hangzhou), atur Endpoint ke https://oss-cn-hangzhou.aliyuncs.com.
$endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// Tentukan nama bucket. Contoh: examplebucket.
$bucket= "examplebucket";
// Tentukan path lengkap objek. Jangan sertakan nama bucket. Contoh: testfolder/exampleobject.txt.
$object = "testfolder/exampleobject.txt";
// Unduh objek ke file lokal bernama examplefile.txt dan simpan ke path lokal yang ditentukan (D:\\localpath). Jika file lokal sudah ada, file tersebut akan ditimpa. Jika belum ada, file tersebut akan dibuat.
// Jika Anda tidak menentukan path lokal, file yang diunduh akan disimpan ke path lokal proyek tempat program contoh berada.
$localfile = "D:\\localpath\\examplefile.txt";
$options = array(
        OssClient::OSS_FILE_DOWNLOAD => $localfile
    );

// Gunakan blok try-catch untuk menangkap exception. Jika terjadi exception, pengunduhan gagal. Jika tidak ada exception, pengunduhan berhasil.
try{
    $config = array(
        "provider" => $provider,
        "endpoint" => $endpoint,
        "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4,
        "region"=> "cn-hangzhou"
    );
    $ossClient = new OssClient($config);

    $ossClient->getObject($bucket, $object, $options);
} catch(OssException $e) {
    printf(__FUNCTION__ . ": GAGAL\n");
    printf($e->getMessage() . "\n");
    return;
}
print(__FUNCTION__ . ": OK, silakan periksa localfile: 'examplefile.txt'" . "\n");
        

FAQ

Bagaimana cara mengganti nama file saat mengunduhnya?

Anda dapat menggunakan parameter $localfile dalam kode contoh untuk mengganti nama file yang diunduh. Misalnya, untuk mengunduh exampleobject.txt dari bucket dan menyimpannya sebagai examplefile.txt ke path lokal tertentu, atur parameter menjadi $localfile = "D:\\localpath\\examplefile.txt";.

Referensi

  • Untuk kode contoh lengkap tentang cara mengunduh objek ke file lokal, lihat contoh di GitHub.

  • Untuk informasi lebih lanjut mengenai operasi API untuk mengunduh objek ke file lokal, lihat GetObject.