Tautan simbolik menyediakan cara praktis untuk mengakses objek yang sering digunakan dalam sebuah bucket. Setelah membuat tautan simbolik, Anda dapat menggunakannya seperti pintasan Windows untuk mengakses objek target.
Catatan penggunaan
Sebelum menjalankan kode contoh dalam topik ini, Anda harus membuat instans OSSClient dengan metode seperti menggunakan nama domain kustom atau Security Token Service (STS). Untuk informasi selengkapnya, lihat Inisialisasi (Android SDK).
Membuat tautan simbolik
Kode berikut menunjukkan cara membuat tautan simbolik:
// Bangun permintaan.
PutSymlinkRequest putSymlink = new PutSymlinkRequest();
// Tentukan nama bucket.
putSymlink.setBucketName("yourBucketName");
// Tentukan nama tautan simbolik.
putSymlink.setObjectKey("yourSymLink");
// Tentukan nama objek target untuk tautan simbolik.
putSymlink.setTargetObjectName("yourTargetObjectName");
ObjectMetadata metadata = new ObjectMetadata();
// Tentukan apakah akan melarang penimpaan objek yang memiliki nama yang sama. Dalam contoh ini, parameter ini diatur ke true untuk melarang penimpaan.
//metadata.setHeader("x-oss-forbid-overwrite", "true");
// Tentukan izin akses objek. Dalam contoh ini, izin akses diatur ke private.
//metadata.setHeader("x-oss-object-acl", "private");
// Tentukan kelas penyimpanan objek. Dalam contoh ini, kelas penyimpanan diatur ke Standard.
//metadata.setHeader("x-oss-storage-class", "Standard");
putSymlink.setMetadata(metadata);
OSSAsyncTask task = oss.asyncPutSymlink(putSymlink, new OSSCompletedCallback<PutSymlinkRequest, PutSymlinkResult>() {
@Override
public void onSuccess(PutSymlinkRequest request, PutSymlinkResult result) {
Log.d("PutSymlink", "PutSymlink success");
}
@Override
public void onFailure(PutSymlinkRequest request, ClientException clientException,
ServiceException serviceException) {
// Kesalahan permintaan.
if (clientException != null) {
// Pengecualian sisi client, seperti pengecualian jaringan.
clientException.printStackTrace();
}
if (serviceException != null) {
// Pengecualian sisi server.
Log.e("ErrorCode", serviceException.getErrorCode());
Log.e("RequestId", serviceException.getRequestId());
Log.e("HostId", serviceException.getHostId());
Log.e("RawMessage", serviceException.getRawMessage());
}
}
});
task.waitUntilFinished();Mendapatkan nama file objek yang ditunjuk oleh tautan simbolik
Anda harus memiliki izin baca pada tautan simbolik untuk mengambil informasinya. Kode berikut mengambil nama file objek yang ditunjuk oleh tautan simbolik:
// Bangun permintaan.
GetSymlinkRequest getSymlink = new GetSymlinkRequest();
// Tentukan nama bucket.
getSymlink.setBucketName("yourBucketName");
// Tentukan nama tautan simbolik.
getSymlink.setObjectKey("yourSymLink");
OSSAsyncTask task = oss.asyncGetSymlink(getSymlink, new OSSCompletedCallback<GetSymlinkRequest,
GetSymlinkResult>() {
@Override
public void onSuccess(GetSymlinkRequest request, GetSymlinkResult result) {
OSSLog.logInfo("targ::"+result.getTargetObjectName());
}
@Override
public void onFailure(GetSymlinkRequest request, ClientException clientException,
ServiceException serviceException) {
OSSLog.logError("error: "+serviceException.getRawMessage());
}
});
task.waitUntilFinished();Referensi
Untuk kode contoh lengkap mengenai tautan simbolik, lihat contoh GitHub.
Untuk informasi mengenai Operasi API untuk membuat tautan simbolik, lihat PutSymlink.
Untuk informasi mengenai Operasi API untuk mengambil tautan simbolik, lihat GetSymlink.
Untuk informasi mengenai cara menginisialisasi instans OSSClient, lihat Inisialisasi instans OSSClient untuk Android.