All Products
Search
Document Center

Object Storage Service:Mengatur transfer data langsung untuk aplikasi seluler

Last Updated:Jul 06, 2025

Topik ini menjelaskan cara mengatur layanan transfer data langsung untuk aplikasi seluler dalam waktu kurang dari 30 menit menggunakan Security Token Service (STS). Layanan ini memungkinkan Anda langsung menghubungkan aplikasi seluler ke Object Storage Service (OSS), sehingga Anda dapat mengunggah atau mengunduh data antara aplikasi dan OSS. Anda hanya perlu mengelola kredensial yang diperoleh dari STS melalui server aplikasi, memastikan efisiensi dan keamanan transmisi data.

Manfaat

Di era Internet seluler, sejumlah besar data diunggah melalui aplikasi seluler. Transfer data langsung berbasis OSS untuk aplikasi seluler memberikan manfaat berikut:

  • Keamanan data: OSS memungkinkan aplikasi seluler untuk mengunggah dan mengunduh data berdasarkan mekanisme manajemen izin yang fleksibel, meningkatkan keamanan data.

  • Efisiensi biaya: Dibutuhkan lebih sedikit server aplikasi, membantu mengurangi biaya. Aplikasi seluler terhubung langsung ke OSS untuk pengunggahan dan pengunduhan data, sementara aliran kontrol dikirim ke server aplikasi.

  • Konkurensi tinggi: OSS mendukung permintaan akses konkuren dari sejumlah besar pengguna, menjamin pengalaman pengguna yang optimal.

  • Skalabilitas elastis: OSS menyediakan kapasitas penyimpanan tanpa batas dan skalabel untuk memenuhi kebutuhan bisnis yang terus berkembang.

  • Pemrosesan data: OSS mendukung pemrosesan gambar (IMG) serta transkoding audio dan video, memungkinkan pengguna memproses data secara fleksibel.

Prasyarat

  • OSS telah diaktifkan. Untuk informasi lebih lanjut, lihat Aktifkan OSS.

  • Bucket telah dibuat. Untuk informasi lebih lanjut, lihat Buat Bucket.

Proses

Gambar berikut menunjukkan proses pengembangan layanan transfer data langsung untuk aplikasi seluler.

Langkah-langkah:

  1. Aplikasi Android atau iOS meminta kredensial akses sementara dari server aplikasi.

    Catatan

    Pasangan AccessKey tidak dapat disimpan di aplikasi Android dan iOS karena alasan keamanan. Sebagai alternatif, aplikasi dapat meminta token keamanan menggunakan STS dari server aplikasi. Token keamanan berlaku untuk periode waktu tertentu. Jika server aplikasi menentukan masa berlaku 30 menit, aplikasi Android atau iOS dapat menggunakan token tersebut untuk mengunggah atau mengunduh data dari atau ke OSS dalam jangka waktu 30 menit setelah token diterbitkan. Setelah itu, aplikasi harus meminta token baru untuk melanjutkan operasi.

  2. Server aplikasi menggunakan SDK STS untuk memanggil operasi AssumeRole guna mendapatkan token keamanan.

  3. STS menghasilkan dan mengembalikan token keamanan ke server aplikasi.

  4. Server aplikasi mengembalikan token keamanan ke klien.

  5. Aplikasi Android atau iOS menggunakan SDK OSS untuk mengunggah objek ke OSS dengan menggunakan token keamanan.

  6. OSS mengembalikan respons sukses ke klien.

Prosedur

Langkah 1: Aktifkan STS dan konfigurasikan server aplikasi

1. Buat pengguna RAM di konsol RAM

Buat pengguna RAM dan peroleh pasangan AccessKey dari pengguna tersebut. Pasangan AccessKey adalah kredensial akses jangka panjang yang diperlukan untuk mengakses dan mengelola server aplikasi.

  1. Masuk ke Konsol RAM menggunakan akun Alibaba Cloud atau sebagai administrator akun.

  2. Di panel navigasi kiri, pilih Identities > Users.

  3. Di halaman Pengguna, klik Create User.

  4. Konfigurasikan parameter Logon Name dan Display Name.

  5. Di bagian Access Mode, pilih Using permanent AccessKey to access dan klik OK.

    Penting

    Anda hanya dapat memperoleh rahasia AccessKey saat membuat pengguna RAM. Pastikan kerahasiaannya untuk mencegah kebocoran kredensial.

  6. Klik Copy di kolom Actions pada halaman yang muncul, lalu salin dan tempelkan pasangan AccessKey ke file yang disimpan dengan aman.

2. Berikan pengguna RAM izin untuk memanggil operasi AssumeRole di konsol RAM

Berikan izin kepada pengguna RAM untuk memanggil operasi AssumeRole. Dengan cara ini, pengguna RAM dapat memperoleh kredensial akses sementara dengan mengasumsikan peran RAM.

  1. Di panel navigasi kiri, pilih Identities > Users.

  2. Di halaman Users, temukan pengguna RAM dan klik Add Permissions di kolom Tindakan.

  3. Di bagian Kebijakan panel Grant Permission, pilih kebijakan sistem AliyunSTSAssumeRoleAccess.

    Catatan

    Kebijakan AliyunSTSAssumeRoleAccess memungkinkan pengguna RAM untuk memanggil operasi AssumeRole. Izin dari kebijakan ini independen dari izin yang diperlukan untuk memungkinkan pengguna RAM memperoleh kredensial akses sementara dari STS dan memulai permintaan ke OSS.

  4. Klik Grant permissions.

3. Buat peran RAM di konsol RAM

Buat peran RAM untuk akun Alibaba Cloud dan peroleh Nama Sumber Daya Alibaba Cloud (ARN) dari peran RAM. Peran RAM diasumsikan oleh pengguna RAM nanti.

  1. Di panel navigasi kiri, pilih Identities > Roles.

  2. Klik Create Role. Di wizard Buat Peran, atur Pilih Entitas Tepercaya ke Alibaba Cloud Account dan klik Next.

  3. Di langkah Konfigurasi Peran, masukkan nama di bidang RAM Role Name dan atur Select Trusted Alibaba Cloud Account ke Akun Alibaba Cloud Saat Ini.

  4. Klik OK. Setelah membuat peran, klik Close.

  5. Di halaman Peran, masukkan nama peran di kotak pencarian. Contoh: oss-web-upload. Klik nama peran.

  6. Di bagian Informasi Dasar, klik Copy di sebelah bidang ARN untuk mencatat ARN dari peran RAM.

4. Buat kebijakan untuk pengunggahan di konsol RAM

Buat kebijakan kustom berdasarkan prinsip hak istimewa minimal. Kebijakan kustom memberikan peran RAM izin untuk mengunggah data hanya ke bucket tertentu.

  1. Di panel navigasi kiri, pilih Permissions > Policies.

  2. Di halaman Kebijakan, klik Create Policy.

  3. Di halaman Create Policy, klik JSON. Salin skrip contoh berikut dan tempelkan ke editor kode. Ganti <BucketName> dengan web-direct-upload, nama bucket yang Anda buat.

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "oss:PutObject",
          "Resource": "acs:oss:*:*:<BucketName>/*"
        }
      ]
    }
  4. Setelah mengonfigurasi kebijakan, klik Next to edit policy information.

  5. Di bagian Basic Information, tentukan nama kebijakan dan klik OK.

5. Lampirkan kebijakan kustom ke peran RAM di konsol RAM

Lampirkan kebijakan kustom ke peran RAM. Dengan cara ini, peran RAM dapat memberikan izin yang diperlukan saat peran RAM diasumsikan.

  1. Di panel navigasi kiri, pilih Identities > Roles.

  2. Di halaman Roles, temukan peran RAM dan klik Grant Permission di kolom Tindakan.

  3. Di bagian Kebijakan panel Grant Permission, pilih Custom Policy dari daftar drop-down, lalu pilih kebijakan kustom.

  4. Klik OK.

6. Buat instance ECS sebagai server aplikasi

Buat instance ECS untuk memperoleh kredensial akses sementara dari STS.

Catatan

Dalam skenario penyebaran aktual, Anda dapat mengintegrasikan operasi API STS ke server aplikasi Anda tanpa perlu membuat instance ECS.

Parameter

Contoh

Metode Penagihan

Bayar sesuai pemakaian

Wilayah

Cina (Hangzhou)

Alamat IP Publik

Tetapkan Alamat IPv4 Publik

Grup Keamanan

HTTP-TCP:80-open

Untuk informasi lebih lanjut, lihat Buat Instance ECS.

7. Peroleh kredensial akses sementara dari server aplikasi

Integrasikan SDK STS ke server aplikasi untuk memperoleh operasi /get_sts_token guna mendapatkan kredensial akses sementara dari STS. Saat operasi /get_sts_token dipanggil menggunakan metode HTTP GET, kredensial akses sementara dibuat dan dikembalikan ke peminta.

Di instance ECS, bangun aplikasi web menggunakan framework Flask dan implementasikan operasi untuk memperoleh kredensial akses sementara dari STS:

  1. Sambungkan ke instance ECS.

    Untuk informasi lebih lanjut, lihat Sambungkan ke Instance.

  2. Instal Python 3.

  3. Buat direktori proyek dan beralih ke direktori proyek. Contoh perintah:

    mkdir my_web_sample
    cd my_web_sample
  4. Jalankan perintah berikut untuk menginstal dependensi:

    pip3 install Flask
    pip3 install attr
    pip3 install yarl
    pip3 install async_timeout
    pip3 install idna_ssl
    pip3 install attrs
    pip3 install aiosignal
    pip3 install charset_normalizer
    pip3 install alibabacloud_tea_openapi
    pip3 install alibabacloud_sts20150401
    pip3 install alibabacloud_credentials
  5. Tulis kode backend aplikasi.

    1. Buat file main.py.

    2. Tulis kode Python berikut ke file:

      import json
      from flask import Flask, render_template
      from alibabacloud_tea_openapi.models import Config
      from alibabacloud_sts20150401.client import Client as Sts20150401Client
      from alibabacloud_sts20150401 import models as sts_20150401_models
      from alibabacloud_credentials.client import Client as CredentialClient
      
      app = Flask(__name__)
      
      # Ganti <YOUR_ROLE_ARN> dengan ARN dari peran RAM.
      role_arn_for_oss_upload = '<YOUR_ROLE_ARN>'
      # Tentukan wilayah STS. Contoh: cn-hangzhou
      region_id = 'cn-hangzhou'
      
      @app.route("/")
      def hello_world():
          return render_template('index.html')
      
      @app.route('/get_sts_token', methods=['GET'])
      def get_sts_token():
          # Jika Anda tidak menentukan parameter saat Anda menginisialisasi CredentialClient, rantai kredensial default digunakan.
          # Jika Anda menjalankan program di komputer lokal Anda, Anda dapat memperoleh pasangan AccessKey dari variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET.
          # Jika Anda menjalankan program di ECS atau Elastic Container Instance, Anda dapat menentukan peran instance yang terikat dengan mengonfigurasi variabel lingkungan ALIBABA_CLOUD_ECS_METADATA. SDK secara otomatis memperoleh kredensial akses sementara dari STS.
          config = Config(region_id=region_id, credential=CredentialClient())
          sts_client = Sts20150401Client(config=config)
          assume_role_request = sts_20150401_models.AssumeRoleRequest(
              role_arn=role_arn_for_oss_upload,
              # Ganti <YOUR_ROLE_SESSION_NAME> dengan nama sesi kustom.
              role_session_name='<YOUR_ROLE_SESSION_NAME>'
          )
          response = sts_client.assume_role(assume_role_request)
          token = json.dumps(response.body.credentials.to_map())
          return token
      app.run(host="127.0.0.1", port=8000)  # Untuk mendengarkan alamat lain, seperti 0.0.0.0, Anda perlu mengimplementasikan mekanisme autentikasi di sisi server.
    3. Ganti <YOUR_ROLE_ARN> di kode contoh dengan ARN dari peran RAM yang Anda buat di Langkah 3.

    4. Ganti <YOUR_ROLE_SESSION_NAME> di kode contoh dengan nama sesi kustom.

  6. Mulai aplikasi menggunakan pasangan AccessKey yang Anda peroleh di Langkah 1.

    ALIBABA_CLOUD_ACCESS_KEY_ID=<YOUR_AK_ID> ALIBABA_CLOUD_ACCESS_KEY_SECRET=<YOUR_AK_SECRET> python3 main.py
  7. Di bilah alamat browser Anda, masukkan http://<ECS-public-IP-address>/get_sts_token.

    Contoh respons sukses:

    sts token.png

  8. Tekan Ctrl+C untuk menghentikan aplikasi.

Langkah 2: Unduh dan instal aplikasi seluler

Android

  1. Unduh paket kode sumber dari aplikasi seluler.

    Anda dapat menggunakan aplikasi seluler di perangkat Android atau iOS untuk mengunggah gambar ke OSS. Unggah sederhana dan unggah berkelanjutan didukung. Jika kualitas jaringan buruk, kami sarankan menggunakan unggah berkelanjutan. Anda juga dapat menggunakan IMG untuk mengubah ukuran gambar guna mendapatkan thumbnail dan menambahkan watermark ke gambar.

  2. Buka aplikasi seluler dan konfigurasikan parameter aplikasi.

    1. Server otentikasi STS: alamat server aplikasi di informasi keluaran di Langkah 1.

    2. Bucket tujuan: bucket tempat data akan diunggah dari aplikasi seluler.

    3. Wilayah: wilayah tempat bucket tujuan berada.

  3. Klik Configure.

iOS

  1. Unduh paket kode sumber untuk aplikasi seluler.

    Anda dapat menggunakan aplikasi seluler di perangkat Android atau iOS untuk mengunggah gambar ke OSS. Unggah sederhana dan unggah berkelanjutan didukung. Jika kualitas jaringan buruk, kami sarankan menggunakan unggah berkelanjutan. Anda juga dapat menggunakan IMG untuk mengubah ukuran gambar guna mendapatkan thumbnail dan menambahkan watermark ke gambar.

  2. Buka aplikasi seluler dan konfigurasikan parameter aplikasi.

    Sebelum menjalankan AliyunOSSSDK, Anda harus mengonfigurasi parameter yang diperlukan di file OSSTestMacros.h. Parameter yang diperlukan termasuk OSS_BUCKET_PRIVATE, OSS_ENDPOINT, dan OSS_STSTOKEN_URL. Atur OSS_STSTOKEN_URL ke alamat server aplikasi yang ditempatkan di Langkah 1.

    image

  3. Jalankan instance.

Langkah 3: Konfigurasikan transfer data langsung untuk aplikasi seluler

  1. Tentukan nama objek OSS. Klik Upload dan pilih gambar yang ingin Anda unggah.

  2. Setelah gambar diunggah, periksa hasil unggahan di konsol OSS.