全部产品
Search
文档中心

Object Storage Service:Tautan simbolik

更新时间:Jan 06, 2026

Tautan simbolik menyediakan cara praktis untuk mengakses objek yang sering digunakan dalam bucket. Tautan ini berfungsi seperti pintasan di Windows, memungkinkan akses cepat ke objek terkait.

Catatan penggunaan

  • Tautan simbolik yang menunjuk ke objek Jenis Penyimpanan Standar atau objek Akses Jarang (IA) memberikan akses langsung ke objek tersebut.

  • Untuk mengakses objek Penyimpanan Arsip, Penyimpanan Arsip Dingin, atau Deep Cold Archive melalui tautan simbolik, Anda harus terlebih dahulu memulihkan objek tersebut. Untuk informasi selengkapnya, lihat Restore objects.

  • Tautan simbolik menyimpan path objek, bukan konten objek tersebut. Oleh karena itu, kapasitas penyimpanan yang digunakan oleh tautan simbolik ditentukan oleh panjang path objek yang ditunjuk, bukan oleh ukuran sebenarnya dari objek tersebut. Sebagai contoh, jika tautan simbolik menunjuk ke objek berukuran 1 MB bernama image.jpg, kapasitas penyimpanannya kira-kira 0,009 KB.

  • Akses ke tautan simbolik mengikuti prinsip hak istimewa minimal. Dalam skenario yang melibatkan kebijakan bucket atau kebijakan Resource Access Management (RAM), pengguna harus memiliki izin untuk tautan simbolik maupun objek targetnya. Akses akan ditolak jika salah satu izin tersebut tidak tersedia. Dalam skenario yang melibatkan daftar kontrol akses (ACL), akses juga ditentukan oleh izin yang lebih restriktif di antara keduanya. Misalnya, pengguna tidak dapat mengakses objek target melalui tautan simbolik private, meskipun objek tersebut bersifat public-read. Sebaliknya, jika tautan simbolik bersifat public-read tetapi objek targetnya private, akses tetap ditolak.

  • Enkripsi sisi server tidak didukung untuk tautan simbolik.

Prosedur

Gunakan Konsol OSS

  1. Login ke Konsol OSS.

  2. Di panel navigasi sebelah kiri, klik Buckets. Pada halaman Buckets, temukan dan klik bucket yang diinginkan.

  3. Di panel navigasi sebelah kiri, pilih Object Management > Objects.

  4. Temukan objek yang ingin Anda buat tautan simboliknya, lalu pilih more > Configure Symbolic Link di kolom Actions.

  5. Pada panel Configure Symbolic Link, konfigurasikan Symbolic Link File or Folder, lalu klik OK.

    Nilai yang Anda tentukan untuk parameter Symbolic Link File or Folder harus memenuhi persyaratan penamaan. Misalkan objek yang ingin Anda buat tautan simboliknya berada di direktori /test/:

    • Jika Absolute Path dipilih dan tautan simbolik diberi nama t1-symlink, path tautan simbolik tersebut adalah /t1-symlink.

    • Jika Relative Path dipilih dan tautan simbolik diberi nama t2-symlink, path tautan simbolik tersebut adalah /test/t2-symlink.

    Penting

    Jika nama objek tautan simbolik tidak mencantumkan ekstensi, misalnya myphoto untuk objek myphoto.jpg, Anda dapat melihat pratinjau objek tautan simbolik tersebut saat mengaksesnya melalui Konsol OSS atau menggunakan URL-nya. Namun, ketika Anda menggunakan tool OSS atau Konsol OSS untuk mengunduh objek tautan simbolik tersebut, format objek yang diunduh tidak dikenali sehingga objek tersebut tidak dapat dibuka secara langsung. Untuk membukanya, Anda harus menambahkan ekstensi nama objek yang benar pada objek tautan simbolik tersebut.

Gunakan ossbrowser

Instal dan login ke ossbrowser 2.0 sebelum melanjutkan.

  1. Klik nama bucket target dan temukan objek yang diinginkan.

  2. Klik ikon image di sebelah kanan objek, lalu klik Set Symbolic Link.

  3. Masukkan path lengkap tautan simbolik (termasuk nama objek), lalu klik OK. Sebagai contoh, jika tautan simbolik bernama symlink berada di direktori exampledir/, masukkan exampledir/symlink.

Gunakan SDK OSS

Kode berikut memberikan contoh cara membuat tautan simbolik menggunakan SDK OSS untuk bahasa pemrograman umum. Untuk informasi selengkapnya tentang cara membuat tautan simbolik menggunakan SDK OSS untuk bahasa pemrograman lainnya, lihat Overview.

import com.aliyun.oss.*;
import com.aliyun.oss.common.auth.*;
import com.aliyun.oss.common.comm.SignVersion;
import com.aliyun.oss.model.*;

public class Demo {
    public static void main(String[] args) throws Exception {
        // Dalam contoh ini, titik akhir wilayah China (Hangzhou) digunakan. Tentukan titik akhir aktual Anda.
        String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
        // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
        // Tentukan nama bucket. Contoh: examplebucket.
        String bucketName = "examplebucket";
        // Tentukan nama tautan simbolik yang ingin Anda buat.
        String symLink = "yourSymLink";
        // Tentukan nama objek yang ingin ditunjuk oleh tautan simbolik.
        String destinationObjectName = "yourDestinationObjectName";
        // Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah menjadi cn-hangzhou.
        String region = "cn-hangzhou";

        // Buat instance OSSClient.
        // Panggil metode shutdown untuk melepaskan resource saat OSSClient tidak lagi digunakan.
        ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
        clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);        
        OSS ossClient = OSSClientBuilder.create()
        .endpoint(endpoint)
        .credentialsProvider(credentialsProvider)
        .clientConfiguration(clientBuilderConfiguration)
        .region(region)               
        .build();

        try {
            // Buat metadata untuk objek yang ingin diunggah.
            ObjectMetadata metadata = new ObjectMetadata();
            metadata.setContentType("text/plain");
            // Atur parameter properti untuk metadata pengguna menjadi property-value.
            metadata.addUserMetadata("property", "property-value");

            // Tentukan apakah akan menimpa objek yang memiliki nama sama dengan tautan simbolik.
            // metadata.setHeader("x-oss-forbid-overwrite", "true");
            // Tentukan daftar kontrol akses (ACL) objek.
            // metadata.setHeader(OSSHeaders.OSS_OBJECT_ACL, CannedAccessControlList.Default);
            // Tentukan kelas penyimpanan objek.
            // metadata.setHeader(OSSHeaders.OSS_STORAGE_CLASS, StorageClass.Standard);

            // Buat CreateSymlinkRequest untuk membuat tautan simbolik.
            CreateSymlinkRequest createSymlinkRequest = new CreateSymlinkRequest(bucketName, symLink, destinationObjectName);

            // Konfigurasikan metadata.
            createSymlinkRequest.setMetadata(metadata);

            // Buat tautan simbolik.
            ossClient.createSymlink(createSymlinkRequest);

        } catch (OSSException oe) {
            System.out.println("Caught an OSSException, which means your request made it to OSS, "
                    + "but was rejected with an error response for some reason.");
            System.out.println("Error Message:" + oe.getErrorMessage());
            System.out.println("Error Code:" + oe.getErrorCode());
            System.out.println("Request ID:" + oe.getRequestId());
            System.out.println("Host ID:" + oe.getHostId());
        } catch (ClientException ce) {
            System.out.println("Caught an ClientException, which means the client encountered "
                    + "a serious internal problem while trying to communicate with OSS, "
                    + "such as not being able to access the network.");
            System.out.println("Error Message:" + ce.getMessage());
        } finally {
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }
    }
}            
const OSS = require('ali-oss')

const client = new OSS({
  // Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah menjadi oss-cn-hangzhou.
  region: 'yourRegion',
  // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan Anda telah mengonfigurasi variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET.
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // Tentukan nama bucket.
  bucket: 'examplebucket',
});

const headers = {
   // Tentukan kelas penyimpanan objek.
   'x-oss-storage-class':'Standard', 
   // Tentukan daftar kontrol akses (ACL) objek.
   'x-oss-object-acl':'private',
   // Tentukan apakah akan menimpa objek yang memiliki nama sama dengan tautan simbolik. Dalam contoh ini, parameter ini diatur ke true, yang berarti objek dengan nama yang sama tidak dapat ditimpa.
   'x-oss-forbid-overwrite': 'true '
};

async function put () {
  try {
    // Tentukan symlinkobject.txt sebagai nama tautan simbolik dan exampleobject.txt sebagai nama objek yang ingin ditunjuk oleh tautan simbolik.
    const result = await client.putSymlink('symlinkobject.txt', 'exampleobject.txt'
    // ,{ headers }
    );
    console.log(result);
  } catch (e) {
    console.log(e);
  }
}

put();
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8" />
  <title>Document</title>
</head>

<body>
  <button id='upload'>Upload</button>
  <button id='symlink'>Create Symbolic Link</button>  
  <!-- Impor file SDK -->
  <script type="text/javascript" src="https://gosspublic.alicdn.com/aliyun-oss-sdk-6.18.0.min.js"></script>
  <script type="text/javascript">
    const client = new OSS({
       // Tentukan wilayah tempat bucket berada. Misalnya, jika bucket Anda berada di wilayah China (Hangzhou), atur wilayah menjadi oss-cn-hangzhou.
       region: 'yourRegion',
       authorizationV4: true,
       // Tentukan pasangan AccessKey temporary yang diperoleh dari STS. Pasangan AccessKey terdiri dari ID AccessKey dan Rahasia AccessKey.
       accessKeyId: 'yourAccessKeyId',
       accessKeySecret: 'yourAccessKeySecret',
       // Tentukan token keamanan yang diperoleh dari STS.
       stsToken: 'yourSecurityToken',
       // Tentukan nama bucket. Contoh: examplebucket.
       bucket: "examplebucket",
     });

    const upload = document.getElementById('upload')
    const symlink = document.getElementById('symlink')
    const getSymlink = document.getElementById("getSymlink")

    // Tentukan konten objek yang akan diunggah.
    const file = new Blob(['examplecontent'])
    // Tentukan nama objek yang akan diunggah ke bucket.
    const fileName = 'exampleobject.txt'

    // Unggah objek.
    upload.addEventListener('click', () => {
      client.put(fileName, file).then(r => console.log(r))
    })
    
    // Buat tautan simbolik bernama symlink.txt.
    symlink.addEventListener('click', () => {
      client.putSymlink('symlink.txt', fileName).then(r => console.log(r))
    })

  </script>
</body>

</html>
using Aliyun.OSS;
using System.Text;
using Aliyun.OSS.Common;

// Tentukan titik akhir wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur titik akhir menjadi https://oss-cn-hangzhou.aliyuncs.com.
var endpoint = "yourEndpoint";
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
var accessKeyId = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID");
var accessKeySecret = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET");
// Tentukan nama bucket. Contoh: examplebucket.
var bucketName = "examplebucket";
var targetObjectName = "yourTargetObjectName";
var symlinkObjectName = "yourSymlinkObjectName";
var objectContent = "More than just cloud.";
// Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah menjadi cn-hangzhou.
const string region = "cn-hangzhou";

// Buat instance ClientConfiguration dan ubah parameter default sesuai kebutuhan Anda.
var conf = new ClientConfiguration();

// Gunakan algoritma signature V4.
conf.SignatureVersion = SignatureVersion.V4;

// Buat instance OssClient.
var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);
client.SetRegion(region);
try
{
    // Unggah objek yang ditunjuk oleh tautan simbolik.
    byte[] binaryData = Encoding.ASCII.GetBytes(objectContent);
    MemoryStream requestContent = new MemoryStream(binaryData);
    client.PutObject(bucketName, targetObjectName, requestContent);
    // Buat tautan simbolik.
    client.CreateSymlink(bucketName, symlinkObjectName, targetObjectName);
    // Kueri nama objek yang ditunjuk oleh tautan simbolik.
    var ossSymlink = client.GetSymlink(bucketName, symlinkObjectName);
    Console.WriteLine("Target object is {0}", ossSymlink.Target);
}
catch (Exception ex)
{
    Console.WriteLine("Failed with error info: {0}", ex.Message);
}
// Buat permintaan.
PutSymlinkRequest putSymlink = new PutSymlinkRequest();
// Tentukan nama bucket.
putSymlink.setBucketName("yourBucketName");
// Tentukan nama tautan simbolik.
putSymlink.setObjectKey("yourSymLink");
// Tentukan nama objek yang ingin ditunjuk oleh tautan simbolik.
putSymlink.setTargetObjectName("yourTargetObjectName");

ObjectMetadata metadata = new ObjectMetadata();
// Tentukan apakah akan menimpa objek yang memiliki nama sama. Dalam contoh ini, parameter ini diatur ke true, yang berarti objek dengan nama yang sama tidak dapat ditimpa.
//metadata.setHeader("x-oss-forbid-overwrite", "true");
// Tentukan daftar kontrol akses (ACL) objek. Dalam contoh ini, ACL 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) {
        // Tangani eksepsi permintaan.
        if (clientException != null) {
            // Tangani eksepsi klien, seperti eksepsi jaringan.
            clientException.printStackTrace();
        }
        if (serviceException != null) {
            // Tangani eksepsi sisi server.
            Log.e("ErrorCode", serviceException.getErrorCode());
            Log.e("RequestId", serviceException.getRequestId());
            Log.e("HostId", serviceException.getHostId());
            Log.e("RawMessage", serviceException.getRawMessage());
        }
    }
});
task.waitUntilFinished();
OSSPutSymlinkRequest *request = [OSSPutSymlinkRequest new];
// Tentukan nama bucket. Contoh: examplebucket.
request.bucketName = @"examplebucket";
// Tentukan nama tautan simbolik.
request.objectKey = @"examplesymlink";
// Tentukan path lengkap objek yang ingin ditunjuk oleh tautan simbolik. Jangan sertakan nama bucket dalam path lengkap tersebut.
request.targetObjectName = @"exampleobject.txt";

OSSTask *putSymlinkTask = [client putSymlink:request];
[putSymlinkTask continueWithBlock:^id _Nullable(OSSTask * _Nonnull task) {
    if (!task.error) {
        NSLog(@"put symlink success");
    } else {
        NSLog(@"put symlink failed, error: %@", task.error);
    }
    return nil;
}];
// Implementasikan pemblokiran sinkron untuk menunggu tugas selesai.
// [putSymlinkTask waitUntilFinished];
#include <alibabacloud/oss/OssClient.h>
using namespace AlibabaCloud::OSS;

int main(void)
{
            
    /* Tentukan titik akhir wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur titik akhir menjadi https://oss-cn-hangzhou.aliyuncs.com. */
    std::string Endpoint = "yourEndpoint";
    /* Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah menjadi cn-hangzhou. */
    std::string Region = "yourRegion";
    /* Tentukan nama bucket. Contoh: examplebucket. */
    std::string BucketName = "examplebucket";
    /* Tentukan path lengkap objek. Contoh: exampledir/exampleobject.txt. Jangan sertakan nama bucket dalam path lengkap tersebut. */
    std::string ObjectName = "exampledir/exampleobject.txt";
    /* Tentukan path lengkap tautan simbolik. Contoh: shortcut/myobject.txt. */
    std::string LinkName = "shortcut/myobject.txt";

    /* Inisialisasi resource, seperti resource jaringan. */
    InitializeSdk();

    ClientConfiguration conf;
    conf.signatureVersion = SignatureVersionType::V4;
    /* Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi. */
    auto credentialsProvider = std::make_shared<EnvironmentVariableCredentialsProvider>();
    OssClient client(Endpoint, credentialsProvider, conf);
    client.SetRegion(Region);



    /* Konfigurasikan header HTTP. */
    auto meta = ObjectMetaData();
    meta.setContentType("text/plain");

    /* Konfigurasikan metadata pengguna objek. */
    meta.UserMetaData()["meta"] = "meta-value";

    /* Buat tautan simbolik. */
    CreateSymlinkRequest request(BucketName, ObjectName, meta);
    request.SetSymlinkTarget(LinkName);
    auto outcome = client.CreateSymlink(request);

    if (!outcome.isSuccess()) {
        /* Tangani eksepsi. */
        std::cout << "CreateSymlink fail" <<
        ",code:" << outcome.error().Code() <<
        ",message:" << outcome.error().Message() <<
        ",requestId:" << outcome.error().RequestId() << std::endl;
        return -1;
    }

    /* Lepaskan resource, seperti resource jaringan. */
    ShutdownSdk();
    return 0;
}
#include "oss_api.h"
#include "aos_http_io.h"
/* Tentukan titik akhir wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur titik akhir menjadi https://oss-cn-hangzhou.aliyuncs.com. */
const char *endpoint = "yourEndpoint";
/* Tentukan nama bucket. Contoh: examplebucket. */
const char *bucket_name = "examplebucket";
/* Tentukan path lengkap objek. Jangan sertakan nama bucket dalam path lengkap tersebut. Contoh: exampledir/exampleobject.txt. */
const char *object_name = "exampledir/exampleobject.txt";
/* Tentukan path lengkap tautan simbolik yang ingin Anda buat. */
const char *link_object_name = "yourLinkObjectName";
/* Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah menjadi cn-hangzhou. */
const char *region = "yourRegion";
void init_options(oss_request_options_t *options)
{
    options->config = oss_config_create(options->pool);
    /* Gunakan string char* untuk menginisialisasi data bertipe aos_string_t. */
    aos_str_set(&options->config->endpoint, endpoint);
    /* Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi. */
    aos_str_set(&options->config->access_key_id, getenv("OSS_ACCESS_KEY_ID"));
    aos_str_set(&options->config->access_key_secret, getenv("OSS_ACCESS_KEY_SECRET"));
    // Tentukan dua parameter tambahan.
    aos_str_set(&options->config->region, region);
    options->config->signature_version = 4;
    /* Tentukan apakah akan menggunakan CNAME. Nilai 0 menunjukkan bahwa CNAME tidak digunakan. */
    options->config->is_cname = 0;
    /* Tentukan parameter jaringan, seperti periode timeout. */
    options->ctl = aos_http_controller_create(options->pool, 0);
}
int main(int argc, char *argv[])
{
    /* Panggil metode aos_http_io_initialize di main() untuk menginisialisasi resource global, seperti resource jaringan dan memori. */
    if (aos_http_io_initialize(NULL, 0) != AOSE_OK) {
        exit(1);
    }
    /* Buat pool memori untuk mengelola memori. aos_pool_t setara dengan apr_pool_t. Kode untuk membuat pool memori termasuk dalam library APR. */
    aos_pool_t *pool;
    /* Buat pool memori. Nilai parameter kedua adalah NULL. Nilai ini menunjukkan bahwa pool tersebut tidak mewarisi pool memori lainnya. */
    aos_pool_create(&pool, NULL);
    /* Buat dan inisialisasi opsi. Parameter ini mencakup informasi konfigurasi global, seperti endpoint, access_key_id, access_key_secret, is_cname, dan curl. */
    oss_request_options_t *oss_client_options;
    /* Alokasikan resource memori dalam pool memori ke opsi tersebut. */
    oss_client_options = oss_request_options_create(pool);
    /* Inisialisasi oss_client_options. */
    init_options(oss_client_options);
    /* Inisialisasi parameter. */
    aos_string_t bucket;
    aos_string_t object;
    aos_string_t sym_object;
    aos_table_t *resp_headers = NULL; 
    aos_status_t *resp_status = NULL; 
    aos_str_set(&bucket, bucket_name);
    aos_str_set(&object, object_name);
    aos_str_set(&sym_object, link_object_name);
    resp_status = oss_put_symlink(oss_client_options, &bucket, &sym_object, &object, &resp_headers);
    if (aos_status_is_ok(resp_status)) {
        printf("put symlink succeeded\n");
    } else {
        printf("put symlink failed\n");      
    }
    /* Lepaskan pool memori. Operasi ini melepaskan resource memori yang dialokasikan untuk permintaan tersebut. */
    aos_pool_destroy(pool);
    /* Lepaskan resource global yang dialokasikan. */
    aos_http_io_deinitialize();
    return 0;
}

Gunakan ossutil

Gunakan ossutil untuk membuat tautan simbolik. Untuk cara menginstal ossutil, lihat Install ossutil.

Jalankan perintah berikut untuk membuat tautan simbolik bernama examplelink yang menunjuk ke targetobject.

ossutil api put-symlink --bucket examplebucket --key examplelink --symlink-target targetobject

Untuk informasi selengkapnya tentang perintah ini, lihat put-symlink.

Operasi API terkait

Metode yang dijelaskan di atas pada dasarnya diimplementasikan berdasarkan API RESTful, yang dapat Anda panggil langsung jika bisnis Anda memerlukan tingkat kustomisasi yang tinggi. Untuk memanggil API secara langsung, Anda harus menyertakan perhitungan tanda tangan dalam kode Anda. Untuk informasi selengkapnya, lihat PutSymlink.

FAQ

Dapatkah saya membuat tautan simbolik yang menunjuk ke objek private?

Ya, Anda dapat membuat tautan simbolik yang menunjuk ke objek private. Anda dapat membuat tautan simbolik yang menunjuk ke objek dengan ACL private, public-read, atau public-read-write.

Bagaimana cara menentukan apakah suatu objek merupakan tautan simbolik?

Anda dapat memanggil operasi HeadObject atau GetObject pada objek tersebut dan memeriksa responsnya.

Jika objek yang diminta adalah tautan simbolik, konten objek yang ditunjuk oleh tautan simbolik tersebut akan dikembalikan. Header respons Content-Length, ETag, dan Content-Md5 menunjukkan metadata objek yang diminta.

Jika saya menghapus tautan simbolik, apakah objek yang ditunjuk oleh tautan simbolik tersebut juga dihapus?

Tidak, menghapus tautan simbolik tidak menghapus objek yang ditunjuk oleh tautan tersebut.