全部产品
Search
文档中心

Object Storage Service:Mengelola tautan simbolik (Android SDK)

更新时间:Nov 30, 2025

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