All Products
Search
Document Center

Object Storage Service:IMG (OSS SDK for Python 1.0)

Last Updated:Oct 26, 2026

Image Processing (IMG) adalah layanan Pemrosesan gambar yang aman, hemat biaya, dan sangat andal dari Object Storage Service (OSS) untuk memproses data dalam jumlah besar. Setelah mengunggah gambar sumber ke OSS, Anda dapat memanggil operasi API RESTful untuk memproses gambar tersebut pada perangkat yang terhubung ke Internet kapan saja dan di mana saja.

Untuk informasi selengkapnya tentang parameter IMG yang didukung, lihat Ikhtisar.

Catatan penggunaan

  • Topik ini menggunakan titik akhir publik Wilayah China (Hangzhou). Jika Anda ingin mengakses OSS dari layanan Alibaba Cloud lain di wilayah yang sama, gunakan titik akhir internal. Untuk informasi selengkapnya tentang wilayah dan titik akhir OSS, lihat Wilayah dan titik akhir.

  • Topik ini mendemonstrasikan pembuatan instans OSSClient dengan titik akhir OSS. Untuk konfigurasi alternatif, seperti menggunakan domain kustom atau autentikasi dengan kredensial dari Security Token Service (STS), lihat Inisialisasi.

Menggunakan parameter IMG untuk memproses gambar

  • Menggunakan satu parameter IMG untuk memproses gambar dan menyimpan hasilnya ke komputer lokal

    # -*- coding: utf-8 -*-
    import os
    import oss2
    from oss2.credentials import EnvironmentVariableCredentialsProvider
    
    # Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
    auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
    
    # 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.
    endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
    # Tentukan ID wilayah yang memetakan ke titik akhir. Contoh: cn-hangzhou. Parameter ini wajib diisi jika Anda menggunakan algoritma signature V4.
    region = "cn-hangzhou"
    
    # Tentukan nama bucket.
    bucket = oss2.Bucket(auth, endpoint, "examplebucket", region=region)
    
    # Tentukan nama gambar yang ingin diproses. Jika gambar tidak disimpan di direktori root bucket, Anda harus menentukan jalur gambar tersebut. Contoh: example/example.jpg.
    key = 'yourObjectName'
    # Tentukan nama gambar yang telah diproses.
    new_pic = 'LocalFileName'
    
    # Jika gambar tidak ada di bucket yang ditentukan, Anda harus mengunggah gambar tersebut ke bucket.
    # bucket.put_object_from_file(key, 'yourLocalFile')
    
    # Ubah ukuran gambar menjadi 100 × 100 piksel, lalu simpan gambar yang ukurannya telah diubah ke komputer lokal Anda.
    style = 'image/resize,m_fixed,w_100,h_100'
    bucket.get_object_to_file(key, new_pic, process=style)
    
    # Setelah gambar diproses, Anda dapat menghapus gambar sumber dari bucket jika tidak lagi membutuhkannya.
    # bucket.delete_object(key)
    # Jika tidak lagi memerlukan gambar yang telah diproses, Anda dapat menghapusnya.
    # os.remove(new_pic)
  • Menggunakan beberapa parameter IMG untuk memproses gambar dan menyimpan hasilnya ke komputer lokal

    Kode sampel berikut menunjukkan cara menggunakan beberapa parameter IMG untuk memproses gambar. Parameter IMG dipisahkan oleh garis miring (/).

    # -*- coding: utf-8 -*-
    import os
    import oss2
    from oss2.credentials import EnvironmentVariableCredentialsProvider
    
    # Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
    auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
    
    # 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.
    endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
    # Tentukan ID wilayah yang memetakan ke titik akhir. Contoh: cn-hangzhou. Parameter ini wajib diisi jika Anda menggunakan algoritma signature V4.
    region = "cn-hangzhou"
    
    # Tentukan nama bucket.
    bucket = oss2.Bucket(auth, endpoint, "examplebucket", region=region)
    
    # Tentukan nama bucket tempat gambar sumber disimpan. Contoh: examplebucket.
    bucket_name = 'examplebucket'
    # Tentukan nama gambar sumber. Jika gambar tidak disimpan di direktori root bucket, Anda harus menentukan jalur gambar tersebut. Contoh: example/example.jpg.
    key = 'exampledir/example.jpg'
    # Tentukan nama gambar yang telah diproses.
    new_pic = 'exampledir/newexample.jpg'
    
    # Jika gambar yang ingin diproses tidak ada di bucket yang ditentukan, Anda harus mengunggah gambar yang tersimpan di jalur lokal ke bucket.
    # bucket.put_object_from_file(key, 'D:\\localpath\\example.jpg')
    
    # Ubah ukuran gambar menjadi 100 × 100 piksel, putar gambar sebesar 90 derajat, lalu simpan gambar yang telah diproses ke komputer lokal Anda.
    style = 'image/resize,m_fixed,w_100,h_100/rotate,90'
    bucket.get_object_to_file(key, new_pic, process=style)
    # Setelah gambar diproses, Anda dapat menghapus gambar sumber dari bucket jika tidak lagi membutuhkannya.
    # bucket.delete_object(key)
    # Jika tidak lagi memerlukan gambar yang telah diproses, Anda dapat menghapusnya.
    # os.remove(new_pic)

Menggunakan style gambar untuk memproses gambar

Anda dapat mengenkapsulasi beberapa parameter IMG ke dalam style gambar, lalu menggunakannya untuk memproses gambar. Untuk informasi selengkapnya, lihat Style gambar. Kode berikut menunjukkan contoh penggunaan style gambar untuk memproses gambar:

# -*- coding: utf-8 -*-
import os
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider

# Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())

# 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.
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# Tentukan ID wilayah yang memetakan ke titik akhir. Contoh: cn-hangzhou. Parameter ini wajib diisi jika Anda menggunakan algoritma signature V4.
region = "cn-hangzhou"

# Tentukan nama bucket.
bucket = oss2.Bucket(auth, endpoint, "examplebucket", region=region)

# Tentukan nama bucket tempat gambar sumber disimpan. Contoh: examplebucket.
bucket_name = 'examplebucket'
# Tentukan nama gambar sumber. Jika gambar tidak disimpan di direktori root bucket, Anda harus menentukan jalur gambar tersebut. Contoh: example/example.jpg.
key = 'exampledir/example.jpg'
# Tentukan nama gambar yang telah diproses.
new_pic = 'exampledir/newexample.jpg'

# Jika gambar yang ingin diproses tidak ada di bucket yang ditentukan, Anda harus mengunggah gambar yang tersimpan di jalur lokal ke bucket.
# bucket.put_object_from_file(key, 'D:\\localpath\\example.jpg')

# Gunakan custom image style untuk memproses gambar. Atur yourCustomStyleName ke nama style gambar yang Anda buat di Konsol OSS.
style = 'style/yourCustomStyleName'
# Simpan gambar yang telah diproses ke komputer lokal Anda.
bucket.get_object_to_file(key, new_pic, process=style)
# Setelah gambar diproses, Anda dapat menghapus gambar sumber dari bucket jika tidak lagi membutuhkannya.
# bucket.delete_object(key)
# Jika tidak lagi memerlukan gambar yang telah diproses, Anda dapat menghapusnya.
# os.remove(new_pic)

Menyimpan gambar yang telah diproses

Anda dapat memanggil operasi ImgSaveAs untuk menyimpan gambar yang telah diproses ke bucket tertentu. Kode sampel berikut menunjukkan cara menyimpan gambar yang telah diproses:

# -*- coding: utf-8 -*-
import os
import base64
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider

# Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())

# 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.
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# Tentukan ID wilayah yang memetakan ke titik akhir. Contoh: cn-hangzhou. Parameter ini wajib diisi jika Anda menggunakan algoritma signature V4.
region = "cn-hangzhou"

# Tentukan nama bucket.
bucket = oss2.Bucket(auth, endpoint, "examplebucket", region=region)

# Tentukan nama bucket tempat gambar sumber disimpan.
source_bucket_name = 'srcbucket'
# Tentukan nama bucket tempat Anda ingin menyimpan gambar yang telah diproses. Bucket harus berada di wilayah yang sama dengan bucket tempat gambar sumber disimpan.
target_bucket_name = 'destbucket'
# Tentukan nama gambar sumber. Jika gambar tidak disimpan di direktori root bucket, Anda harus menentukan jalur lengkap gambar tersebut. Contoh: example/example.jpg.
source_image_name = 'example/example.jpg'

# Ubah ukuran gambar menjadi 100 × 100 piksel.
style = 'image/resize,m_fixed,w_100,h_100'
# Tentukan nama gambar yang telah diproses. Jika gambar tidak disimpan di direktori root bucket, Anda harus menentukan jalur lengkap gambar tersebut. Contoh: exampledir/example.jpg.
target_image_name = 'exampledir/example.jpg'
process = "{0}|sys/saveas,o_{1},b_{2}".format(style, 
    oss2.compat.to_string(base64.urlsafe_b64encode(oss2.compat.to_bytes(target_image_name))),
    oss2.compat.to_string(base64.urlsafe_b64encode(oss2.compat.to_bytes(target_bucket_name))))
result = bucket.process_object(source_image_name, process)
print(result)

Membuat signed URL objek yang menyertakan parameter IMG

URL objek privat harus ditandatangani. Parameter IMG tidak dapat ditambahkan di akhir signed URL. Untuk memproses objek gambar privat, tambahkan parameter IMG ke dalam signature. Kode sampel berikut menunjukkan cara menambahkan parameter IMG ke dalam signature:

# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider

# Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())

# 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.
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# Tentukan ID wilayah yang memetakan ke titik akhir. Contoh: cn-hangzhou. Parameter ini wajib diisi jika Anda menggunakan algoritma signature V4.
region = "cn-hangzhou"

# Tentukan nama bucket.
bucket = oss2.Bucket(auth, endpoint, "examplebucket", region=region)

# Tentukan nama bucket. Contoh: examplebucket.
bucket_name = 'examplebucket'
# Tentukan nama bucket tempat gambar disimpan. Jika gambar tidak disimpan di direktori root bucket, Anda harus menentukan jalur lengkap gambar tersebut. Contoh: exampledir/example.jpg.
key = 'exampledir/example.jpg'

# Jika gambar tidak disimpan di bucket yang ditentukan, Anda harus mengunggah gambar tersebut ke bucket.
# bucket.put_object_from_file(key, 'D:\\localpath\\example.jpg')
# Ubah ukuran gambar menjadi 100 × 100 piksel dan putar gambar sebesar 90 derajat.
style = 'image/resize,m_fixed,w_100,h_100/rotate,90'
# Buat signed URL objek yang menyertakan parameter IMG. Atur periode validitas URL menjadi 600. Satuan: detik.
url = bucket.sign_url('GET', key, 10 * 60, params={'x-oss-process': style})
print(url)

Referensi

Untuk kode sampel lengkap mengenai penggunaan IMG, kunjungi GitHub.