Topik ini menjelaskan cara mengunduh objek Object Storage Service (OSS) ke file lokal.
Catatan penggunaan
Sebelum menjalankan kode contoh dalam topik ini, Anda harus membuat instans OSSClient dengan menggunakan metode seperti nama domain kustom atau Security Token Service (STS). Untuk informasi selengkapnya, lihat Inisialisasi (Android SDK).
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 |
| Mengunduh objek. |
| Saat mengunduh objek, jika Anda menentukan versi objek melalui versionId, izin ini diperlukan. | |
| Saat mengunduh objek, jika metadata objek berisi X-Oss-Server-Side-Encryption: KMS, izin ini diperlukan. |
Kode contoh
Anda dapat menggunakan kode berikut untuk mengunduh objek OSS tertentu ke file lokal.
// Buat permintaan untuk mengunduh file.
// Tentukan nama bucket, misalnya examplebucket, dan path lengkap objek, misalnya exampledir/exampleobject.txt. Path lengkap tidak boleh mengandung nama bucket.
GetObjectRequest get = new GetObjectRequest("examplebucket", "exampledir/exampleobject.txt");
oss.asyncGetObject(get, new OSSCompletedCallback<GetObjectRequest, GetObjectResult>() {
@Override
public void onSuccess(GetObjectRequest request, GetObjectResult result) {
// Mulai membaca data.
long length = result.getContentLength();
if (length > 0) {
byte[] buffer = new byte[(int) length];
int readCount = 0;
while (readCount < length) {
try{
readCount += result.getObjectContent().read(buffer, readCount, (int) length - readCount);
}catch (Exception e){
OSSLog.logInfo(e.toString());
}
}
// Simpan file yang diunduh ke path lokal tertentu, misalnya D:\\localpath\\exampleobject.jpg.
try {
FileOutputStream fout = new FileOutputStream("download_filePath");
fout.write(buffer);
fout.close();
} catch (Exception e) {
OSSLog.logInfo(e.toString());
}
}
}
@Override
public void onFailure(GetObjectRequest request, ClientException clientException,
ServiceException serviceException) {
}
});Referensi
Untuk kode contoh lengkap tentang mengunduh objek ke file lokal, lihat contoh GitHub.
Untuk informasi selengkapnya tentang operasi API untuk mengunduh objek ke file lokal, lihat GetObject.
Untuk informasi selengkapnya tentang cara menginisialisasi instans OSSClient, lihat Inisialisasi instans OSSClient untuk Android.