All Products
Search
Document Center

Object Storage Service:Mengemas dan mengunduh objek sebagai file ZIP

Last Updated:Sep 03, 2026

Object Storage Service (OSS) terintegrasi dengan Function Compute, memungkinkan Anda membangun berbagai aplikasi dan fungsi. Topik ini menjelaskan cara menggunakan Function Compute untuk mengemas beberapa objek OSS ke dalam satu file ZIP guna diunduh ke lokal.

Prasyarat

Cara kerja

Mengunduh banyak objek dari OSS sekaligus—terutama jika jumlahnya banyak dan ukurannya kecil—bisa lambat dan merepotkan. Dengan menggunakan Function Compute, Anda dapat mengemas objek-objek tersebut di OSS terlebih dahulu, mengunduh paket terkompresi ke komputer lokal, lalu mengekstraknya. Metode ini memungkinkan pengunduhan massal yang lebih cepat. Alur kerja penggunaan Function Compute untuk mengemas dan mengunduh objek OSS ditunjukkan pada gambar berikut.压缩OSS文件

  1. Pengguna memanggil fungsi dan menentukan bucket serta objek yang akan dikompresi.

  2. Function Compute mengunduh objek yang ditentukan dari OSS dan menghasilkan paket ZIP dengan nama acak.

  3. Function Compute mengunggah paket ZIP ke OSS.

  4. Function Compute mengembalikan URL unduhan paket ZIP kepada pengguna.

  5. Pengguna mengunduh file dari OSS menggunakan URL unduhan permanen yang dikembalikan.

Catatan penggunaan

  • Ruang disk di lingkungan runtime fungsi terbatas. Oleh karena itu, fungsi melakukan streaming data baik saat mengunduh maupun mengunggah agar hanya menyimpan sedikit data di memori.

  • Untuk mempercepat proses, Function Compute mengunggah file ZIP ke OSS secara bersamaan saat file tersebut sedang dibuat.

  • Saat mengunggah file ZIP ke OSS, fungsi menggunakan fitur unggah multi-bagian (multipart upload) OSS untuk mengunggah bagian-bagian secara konkuren melalui beberapa thread.

  • Waktu pemrosesan maksimum untuk mengompresi file menggunakan Function Compute adalah 24 jam. (Data uji: 57 objek dengan ukuran total 1,06 GB diproses dalam 63 detik).

Prosedur

Contoh ini menjelaskan cara menggunakan Function Compute untuk mengemas dan mengunduh beberapa objek dari direktori dir/ di bucket examplebucket di wilayah Tiongkok (Hangzhou) ke komputer lokal.

  1. Lakukan penerapan aplikasi dan peroleh nama domain publiknya.

    Penerapan satu klik dengan ROS

    Gunakan Resource Orchestration Service (ROS) untuk menerapkan aplikasi Function Compute dalam satu klik.

    1. Buka tautan templat konfigurasi satu klik.

    2. Pada tab Configure Parameters, pertahankan pengaturan default untuk semua parameter lalu klik Next: Check and Confirm.

    3. Pada tab Check and Confirm, klik Create.

      Status pada tab Stack Information menampilkan Creating.

    4. Ketika Status stack berubah menjadi Create_Success, klik tab Outputs untuk menemukan nama domain publik.

    Penerapan satu klik dengan Serverless Application Center

    1. Terapkan templat aplikasi start-zip-oss dari Serverless Application Center.

      Pada halaman Create Application, templat aplikasi adalah start-zip-oss, dan jenis penerapan adalah Directly Deploy. Konfigurasikan parameter utama berikut:

      • Nama Aplikasi: start-zip-oss-obvr

      • Nama Peran: AliyunFCServerlessDevsRole. Kebijakan yang dilampirkan mencakup AliyunOSSReadOnlyAccess dan AliyunFCFullAccess.

      • Status Layanan: Function Compute dan Object Storage Service (OSS) keduanya telah diaktifkan.

      • Pengaturan Lanjutan: Pilih wilayah Tiongkok (Hangzhou). Atur nama layanan menjadi zip-oss, nama fungsi menjadi zip-oss-func, dan ARN peran RAM menjadi AliyunFcDefaultRole (kebijakan terlampir: AliyunOSSFullAccess dan AliyunFCDefaultRolePolicy).

      Setelah konfigurasi selesai, klik Create and Deploy Default Environment.

    2. Peroleh nama domain publik.

      1. Klik tab Result.

      2. Pada bidang triggers, peroleh nama domain publik (urlInternet).

        fc zip oss service.
          service:
            role: acs:ram::1379186349xxx:role/aliyunfcdefaultrole
            internetAccess: true
            name: zip-oss
            description: zip oss sample
          function:
            handler: main.main_handler
            initializationTimeout: 3
            memorySize: 3072
            instanceType: e1
            name: zip-oss-func
            runtime: python2.7
            description: This is default function description by fc-deploy component
            timeout: 1800
            instanceConcurrency: 1
          region: cn-hangzhou
          triggers:
            - urlInternet: https://zip-oss-func-zip-oss-ayouyexxx.cn-hangzhou.fcapp.run
              name: http-test
              type: http
              config:
                methods:
                  - GET
                  - POST
                  - PUT
                authType: anonymous

    Manual dengan CLI Serverless Devs

    1. Instal Serverless Devs.

      npm install -g @serverless-devs/s

      Verifikasi instalasi.

      s -v

      Output berikut menunjukkan instalasi berhasil:

      @serverless-devs/s: 2.1.1, s-home: /root/.s, linux-x64, node-v14.19.3
    2. Konfigurasikan Serverless Devs.

      s config add --AccessKeyID LTAI******** --AccessKeySecret  KZo1******** --access fc-access

      Tabel berikut menjelaskan parameter-parameter tersebut.

      Parameter

      Deskripsi

      --AccessKeyID

      ID AccessKey untuk mengakses Function Compute.

      --AccessKeySecret

      Secret AccessKey untuk mengakses Function Compute.

      --access

      Alias kustom untuk kredensial.

    3. Terapkan templat aplikasi start-zip-oss.

      1. Inisialisasi proyek.

      2. s init start-zip-oss -d start-zip-oss
      3. Tentukan nilai untuk item konfigurasi berdasarkan contoh berikut.

      4. Parameter

        Contoh

        Wilayah tempat aplikasi berada

        cn-hangzhou

        Layanan Function Compute tempat aplikasi berada

        start-zip-oss

        Nama fungsi aplikasi

        zip-oss-func

        ARN peran RAM yang dikonfigurasi untuk layanan Function Compute tempat aplikasi berada

        acs:ram::137918634953****:role/test-role

      5. Masuk ke direktori proyek.

      6. cd start-zip-oss
      7. Lakukan penerapan proyek.

      8. s deploy -y
      9. Catat system_url dari output.

      10. fc-zip-oss-service:
          region:   cn-hangzhou
          service:
            name: start-zip-oss
          function:
            name:       zip-oss-func
            runtime:    python2.7
            handler:    main.main_handler
            memorySize: 3072
            timeout:    1800
          url:
            system_url: https://zip-oss-func-start-zip-oss-ayouye****.cn-hangzhou.fcapp.run
          triggers:
            -
              type: http
              name: http-test
  2. Di server atau Instance ECS Anda, jalankan perintah berikut untuk membuat file event.json. Di dalam file tersebut, tentukan nama bucket dan direktori yang berisi objek yang akan diunduh.

    cat <<EOF > event.json
    {
      "bucket": "examplebucket",
      "source-dir": "dir/"
    }
    EOF
    Catatan

    Parameter source-dir harus berupa direktori di dalam bucket; direktori root tidak didukung.

  3. Perintah berikut merupakan contoh permintaan.

    curl -v -L -o  oss.zip -d @./event.json https://zip-oss-func-zip-oss-ayouye****.cn-hangzhou.fcapp.run
    • oss.zip: Jalur lokal tempat paket ZIP yang diunduh disimpan.

      Catatan

      Jika alat dekompresi bawaan Windows gagal, gunakan alat pihak ketiga seperti 7-Zip atau WinRAR.

    • https://zip-oss-func-zip-oss-ayouye****.cn-hangzhou.fcapp.run: system_url yang dikembalikan saat Anda menerapkan proyek.

    Untuk memanggil fungsi HTTP ini dengan autentikasi alih-alih secara anonim, gunakan salah satu SDK berikut:

FAQ

Menambahkan Watermark

Tidak. Namun, Anda dapat menambahkan watermark teks atau gambar ke objek di OSS dengan metode berikut:

  • Untuk objek dengan izin baca-publik atau baca-tulis publik

    Tambahkan parameter watermark ke URL objek. Untuk informasi lebih lanjut, lihat Watermark gambar.

  • Untuk objek dengan izin privat

    Tambahkan watermark dengan menyertakan parameter pemrosesan gambar atau parameter gaya gambar di SDK. Untuk informasi lebih lanjut, lihat Pemrosesan gambar menggunakan SDK.

URL unduhan berbatas waktu

Tidak. Untuk membuat URL dengan waktu kedaluwarsa, Anda harus menghasilkan URL yang ditandatangani (signed URL) yang mencakup parameter Expires. Untuk informasi lebih lanjut, lihat Gunakan URL objek.

Referensi