Object Storage Service (OSS) mendukung Function Compute. Anda dapat menggunakan Function Compute untuk membangun aplikasi dan fungsi dari berbagai jenis. Topik ini menjelaskan cara menggunakan Function Compute untuk mengekstrak beberapa objek menjadi paket dan mengunduhnya dari OSS ke komputer lokal.
Prasyarat
Function Compute telah diaktifkan.
Anda dapat mengaktifkan Function Compute pada Halaman produk Function Compute.
Function Compute diberikan izin untuk mengakses OSS.
Untuk informasi lebih lanjut, lihat Berikan Izin Function Compute untuk Mengakses Layanan Alibaba Cloud Lainnya.
Bucket OSS harus berada dalam wilayah yang sama dengan fungsi tersebut.
Beberapa objek diunggah ke direktori tertentu dalam bucket. Dalam contoh ini, beberapa objek diunggah ke direktori dir/ dari bucket examplebucket di wilayah China (Hangzhou). Untuk informasi lebih lanjut, lihat Unggah Sederhana.
Peran RAM dibuat untuk layanan tempat aplikasi milik di Function Compute, dan ARN Peran RAM dicatat. Untuk informasi lebih lanjut, lihat Buat Peran RAM untuk Akun Alibaba Cloud Tepercaya.
Solusi
Mengunduh beberapa objek dari OSS sekaligus dapat menyebabkan ketidaknyamanan dalam beberapa kasus khusus. Misalnya, kecepatan unduh lambat saat Anda mengunduh sejumlah besar objek kecil sekaligus. Untuk meningkatkan pengalaman Anda dalam mengunduh sejumlah besar objek sekaligus, Anda dapat menggunakan Function Compute untuk mengekstrak objek menjadi paket, mengunduh paket ke komputer lokal Anda, lalu mengekstrak paket tersebut. Gambar berikut menunjukkan cara menggunakan Function Compute untuk mengekstrak objek menjadi paket dan mengunduh paket.
Pengguna memanggil fungsi dan menentukan objek yang akan dikompresi serta bucket tempat objek disimpan.
Function Compute mengunduh objek yang ditentukan dari OSS dan menghasilkan paket ZIP dengan nama acak.
Function Compute mengunggah paket ZIP ke OSS.
Function Compute mengembalikan URL yang digunakan untuk mengunduh paket ZIP kepada pengguna.
Pengguna mengunduh paket ZIP dari OSS menggunakan URL, yang tetap valid untuk jangka waktu panjang.
Catatan Penggunaan
Unduhan streaming dan unggahan streaming digunakan untuk mentransfer paket ZIP karena ruang disk terbatas untuk menjalankan fungsi. Hanya sejumlah kecil data yang disimpan dalam memori.
Untuk mempercepat transfer paket ZIP, Function Compute menghasilkan paket ZIP dan mengunggah paket tersebut ke OSS secara bersamaan.
Unggahan multipart digunakan untuk mengunggah paket ZIP dalam bagian-bagian paralel ke OSS.
Function Compute memerlukan waktu hingga 24 jam untuk memampatkan objek menjadi sebuah paket. Berdasarkan data uji, Function Compute membutuhkan sekitar 63 detik untuk memampatkan 57 objek dengan total ukuran 1,06 GB menjadi sebuah paket.
Prosedur
Dalam contoh ini, Function Compute digunakan untuk mengunduh beberapa objek di direktori dir/ dari bucket examplebucket di wilayah China (Hangzhou) ke komputer lokal Anda.
Sebarkan aplikasi dan dapatkan nama domain publiknya.
Gunakan ROS untuk menyebarkan aplikasi
Lakukan langkah-langkah berikut untuk menggunakan Resource Orchestration Service (ROS) untuk menyebarkan aplikasi Function Compute dan mendapatkan nama domain publiknya:
Gunakan wizard Create Stack di konsol ROS.
Pada langkah Configure Parameters, pertahankan pengaturan default untuk semua parameter dan klik Next:Check and Confirm.
Pada langkah Check and Confirm, klik Create.
Pada tab Stack Information di halaman yang muncul, status stack ditampilkan sebagai Creating.
Setelah stack masuk ke status Created, klik tab Outputs untuk melihat domain publik.
Gunakan Serverless Application Center untuk menyebarkan aplikasi
Pergi ke Serverless Application Center untuk menyebarkan template aplikasi start-zip-oss.
Pilih Directly Deploy untuk Jenis Penyebaran. Pilih wilayah bucket untuk template aplikasi. Pertahankan pengaturan default untuk parameter lainnya dan klik Buat dan Sebarkan Lingkungan Default. Gambar berikut menunjukkan detail konfigurasi.

Dapatkan nama domain publik.
Di panel Versi Penyebaran halaman yang muncul, klik tab Result.
Di bidang pemicu, dapatkan nama domain publik dari parameter urlInternet.

Gunakan Serverless Devs untuk menyebarkan aplikasi
Instal Serverless Devs.
curl -o- -L http://cli.so/install.sh | bashPeriksa apakah Serverless Devs telah diinstal.
s -vKeluaran berikut dikembalikan jika Serverless Devs telah diinstal:
@serverless-devs/s: 2.1.1, s-home: /root/.s, linux-x64, node-v14.19.3Konfigurasikan Serverless Devs.
s config add --AccessKeyID LTAI******** --AccessKeySecret KZo1******** --access fc-accessTabel berikut menjelaskan parameter dalam perintah sebelumnya.
Parameter
Deskripsi
--AccessKeyID
ID AccessKey yang digunakan untuk mengakses Function Compute.
--AccessKeySecret
Rahasia AccessKey yang digunakan untuk mengakses Function Compute.
--Access
Alias kunci kustom.
Sebarkan template aplikasi start-zip-oss.
Inisialisasi proyek.
Tabel berikut menjelaskan konfigurasi sampel untuk template aplikasi start-zip-oss.
Mulai proyek.
Sebarkan proyek.
Catat nilai yang dikembalikan oleh system_url.
s init start-zip-oss -d start-zip-ossItem konfigurasi
Contoh
ID wilayah tempat Anda ingin menyebarkan aplikasi
cn-hangzhou
Layanan tempat aplikasi milik di Function Compute
start-zip-oss
Nama fungsi aplikasi
zip-oss-func
ARN Peran RAM yang dibuat untuk layanan tempat aplikasi milik di Function Compute
acs:ram::137918634953****:role/test-role
cd start-zip-osss deploy -yfc-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
Jalankan perintah berikut untuk menghasilkan file event.json dan tentukan nama bucket dan direktori tempat objek yang ingin Anda unduh disimpan:
cat <<EOF > event.json { "bucket": "examplebucket", "source-dir": "dir/" } EOFCatatanAnda harus menyetel source-dir ke direktori selain direktori root bucket.
Jalankan perintah berikut untuk memicu fungsi:
curl -v -L -o oss.zip -d @./event.json https://zip-oss-func-zip-oss-ayouye****.cn-hangzhou.fcapp.run/test/oss.zip: jalur lokal yang digunakan untuk menyimpan objek di direktori dir/.
CatatanGunakan alat dekompresi pihak ketiga (seperti 7-Zip atau WinRAR) jika alat dekompresi bawaan Windows gagal.
https://zip-oss-func-zip-oss-ayouye****.cn-hangzhou.fcapp.run: nilai system_url yang dikembalikan saat proyek disebarkan.
Jika Anda ingin mengubah fungsi HTTP anonim non-otentikasi dalam contoh sebelumnya menjadi fungsi HTTP otentikasi, Anda dapat menggunakan salah satu SDK OSS berikut:
FAQ
Bisakah saya menambahkan watermark ke objek saat saya menggunakan Function Compute untuk mengekstrak objek menjadi paket dan mengunduh paket?
Bisakah Function Compute menghasilkan URL unduhan yang memiliki periode validitas saat saya menggunakan Function Compute untuk mengunduh beberapa objek sebagai paket?
Referensi
Untuk informasi lebih lanjut tentang pengenalan dan aturan penagihan Function Compute, lihat Pengenalan Produk dan Penagihan.
Untuk informasi lebih lanjut tentang template dan aplikasi saat Anda menggunakan Function Compute bersama dengan OSS, lihat Kode Sampel.