全部产品
Search
文档中心

Object Storage Service:Inisialisasi

更新时间:Aug 13, 2025

Topik ini menjelaskan cara menginisialisasi Object Storage Service (OSS) SDK untuk Python.

Catatan Penggunaan

  • Sebelum menginisialisasi OSS SDK untuk Python, konfigurasikan kredensial akses. Dalam topik ini, kredensial akses diperoleh dari variabel lingkungan. Untuk informasi lebih lanjut, lihat Konfigurasikan kredensial akses (Python SDK V1).

  • Untuk memperoleh informasi tentang Wilayah dan Titik akhir OSS, lihat Wilayah dan Titik akhir.

  • Untuk membuat Pasangan Kunci Akses untuk Pengguna RAM, lihat Buat Pasangan Kunci Akses.

  • Sebagian besar operasi OSS SDK untuk Python dilakukan menggunakan kelas oss2.Service dan oss2.Bucket.

    • Kelas oss2.Service digunakan untuk mencantumkan bucket.

    • Kelas oss2.Bucket digunakan untuk mengunggah, mengunduh, dan menghapus objek, serta mengonfigurasi bucket.

    Saat menginisialisasi kelas oss2.Service dan oss2.Bucket, tentukan titik akhir wilayah tempat bucket berada. Kelas oss2.Service tidak mendukung akses ke bucket menggunakan nama domain kustom yang dipetakan ke bucket.

Prasyarat

Peringatan

Sebelum mengonfigurasi klien, pastikan Anda telah mengonfigurasi variabel lingkungan menggunakan Pasangan Kunci Akses Pengguna RAM.

Contoh Default

Bagian ini memberikan contoh penggunaan algoritma tanda tangan V4 dan algoritma tanda tangan V1 untuk menginisialisasi OSS SDK untuk Python.

Perhatikan bahwa kode sampel berikut menggunakan titik akhir publik bucket dan Pasangan Kunci Akses Pengguna RAM.

(Direkomendasikan) Gunakan algoritma tanda tangan V4

Penting
  • Saat menggunakan algoritma tanda tangan V4 untuk menginisialisasi OSS SDK untuk Python, tentukan titik akhir. Dalam contoh ini, titik akhir publik https://oss-cn-hangzhou.aliyuncs.com wilayah Cina (Hangzhou) digunakan. Jika ingin mengakses OSS dari layanan Alibaba Cloud lainnya di wilayah yang sama dengan OSS, gunakan titik akhir internal. Untuk informasi lebih lanjut tentang titik akhir publik wilayah lainnya, lihat Wilayah dan Titik akhir.

  • Jika menggunakan algoritma tanda tangan V4, tentukan ID Wilayah Alibaba Cloud sebagai pengenal wilayah tempat permintaan dimulai. Dalam contoh ini, ID wilayah cn-hangzhou wilayah Cina (Hangzhou) digunakan. Untuk informasi lebih lanjut tentang ID wilayah wilayah lainnya, lihat Wilayah dan Titik akhir.

Kode sampel berikut menunjukkan cara menggunakan algoritma tanda tangan V4 untuk menginisialisasi OSS SDK untuk Python menggunakan titik akhir OSS:

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

# Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan variabel lingkungan telah dikonfigurasi. 
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# Tentukan titik akhir wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah Cina (Hangzhou), atur titik akhir menjadi https://oss-cn-hangzhou.aliyuncs.com. 
endpoint = 'yourEndpoint'
# Tentukan wilayah titik akhir. Contoh: cn-hangzhou. 
region = 'cn-hangzhou'

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

(Tidak Direkomendasikan) Gunakan algoritma tanda tangan V1

Penting

Mulai 1 Maret 2025, algoritma tanda tangan V1 OSS tidak lagi tersedia untuk pelanggan baru dengan UID baru. Mulai 1 September 2025, OSS tidak lagi memperbarui dan memelihara algoritma tanda tangan V1, dan algoritma tanda tangan V1 tidak lagi tersedia untuk bucket baru. Tingkatkan tanda tangan V1 ke tanda tangan V4 sesegera mungkin untuk mencegah dampak pada bisnis Anda.

Kode sampel berikut menunjukkan cara menggunakan algoritma tanda tangan V1 untuk menginisialisasi OSS SDK untuk Python menggunakan titik akhir OSS:

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

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

# Tentukan titik akhir wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah Cina (Hangzhou), atur titik akhir menjadi https://oss-cn-hangzhou.aliyuncs.com. 
endpoint = 'yourEndpoint'

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

Contoh Konfigurasi dalam Skenario Umum

Bagian ini memberikan contoh konfigurasi dalam skenario umum. Kode sampel menggunakan algoritma tanda tangan V4 dan Pasangan Kunci Akses Pengguna RAM untuk menginisialisasi OSS SDK untuk Python secara default.

Gunakan titik akhir internal untuk menginisialisasi OSS SDK untuk Python

Jika aplikasi Anda diterapkan pada instance ECS dan sering mengakses data OSS di bucket di wilayah yang sama dengan instance ECS, gunakan titik akhir internal untuk mengurangi latensi jaringan dan biaya bandwidth secara signifikan.

Kode sampel berikut menunjukkan cara menggunakan titik akhir internal untuk mengonfigurasi instance OSSClient:

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

# Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan variabel lingkungan telah dikonfigurasi. 
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# Tentukan titik akhir wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah Cina (Hangzhou), atur titik akhir menjadi https://oss-cn-hangzhou-internal.aliyuncs.com. 
endpoint = 'yourEndpoint'
# Tentukan wilayah titik akhir. Contoh: cn-hangzhou. 
region = 'cn-hangzhou'

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

Gunakan nama domain kustom untuk menginisialisasi OSS SDK untuk Python

Jika memiliki beberapa bucket untuk penggunaan yang berbeda, tentukan subdomain yang berbeda untuk setiap bucket untuk mengelola dan mengatur sumber daya dengan lebih baik.

Kode sampel berikut menunjukkan cara menggunakan nama domain kustom untuk mengonfigurasi instance OSSClient.

Peringatan

Anda harus terlebih dahulu memetakan nama domain kustom ke nama domain default bucket. Jika tidak, kesalahan akan dilaporkan. Untuk informasi lebih lanjut tentang cara memetakan nama domain kustom ke nama domain default bucket, lihat Petakan nama domain kustom ke nama domain default bucket.

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

# Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan variabel lingkungan telah dikonfigurasi. 
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
// Tentukan nama domain kustom. Contoh: https://static.example.com. 
endpoint = 'yourEndpoint'
# Tentukan wilayah titik akhir. Contoh: cn-hangzhou. 
region = 'cn-hangzhou'

# Tentukan nama bucket. Set is_cname ke true untuk mengaktifkan CNAME.
bucket = oss2.Bucket(auth, endpoint, 'examplebucket', is_cname=True, region=region) 

Konfigurasikan periode timeout koneksi

Kode sampel berikut menunjukkan cara mengonfigurasi periode timeout koneksi:

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

# Kami merekomendasikan agar Anda tidak menyimpan kredensial akses di kode proyek. Jika tidak, kredensial akses mungkin bocor. Akibatnya, keamanan semua sumber daya di akun Anda terganggu. Dalam contoh ini, kredensial akses diperoleh dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan variabel lingkungan telah dikonfigurasi. 
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())

# Tentukan titik akhir wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah Cina (Hangzhou), atur titik akhir menjadi https://oss-cn-hangzhou.aliyuncs.com. 
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# Tentukan wilayah titik akhir. Contoh: cn-hangzhou. Parameter ini diperlukan jika Anda menggunakan algoritma tanda tangan V4.
region = "cn-hangzhou"

# Tentukan nama bucket dan atur periode timeout koneksi menjadi 30 detik. 
bucket = oss2.Bucket(auth, endpoint, 'examplebucket', connect_timeout=30,region=region)                    

Nonaktifkan CRC-64

Secara default, CRC-64 diaktifkan untuk memastikan integritas data saat mengunggah atau mengunduh objek.

Peringatan

Kami merekomendasikan agar Anda tidak menonaktifkan CRC-64. Jika menonaktifkan CRC-64, integritas data mungkin terpengaruh saat mengunggah atau mengunduh objek.

Kode sampel berikut menunjukkan cara menonaktifkan CRC-64:

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

# Kami merekomendasikan agar Anda tidak menyimpan kredensial akses di kode proyek. Jika tidak, kredensial akses mungkin bocor. Akibatnya, keamanan semua sumber daya di akun Anda terganggu. Dalam contoh ini, kredensial akses diperoleh dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan variabel lingkungan telah dikonfigurasi. 
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())

# Tentukan titik akhir wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah Cina (Hangzhou), atur titik akhir menjadi https://oss-cn-hangzhou.aliyuncs.com. 
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# Tentukan wilayah titik akhir. Contoh: cn-hangzhou. Parameter ini diperlukan jika Anda menggunakan algoritma tanda tangan V4.
region = "cn-hangzhou"

# Tentukan nama bucket dan atur enable_crc ke False untuk menonaktifkan CRC-64. 
bucket = oss2.Bucket(auth, endpoint, 'examplebucket', enable_crc=False,region=region)                   

Tentukan ukuran kolam koneksi

Kode sampel berikut menunjukkan cara menentukan ukuran kolam koneksi:

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

# Kami merekomendasikan agar Anda tidak menyimpan kredensial akses di kode proyek. Jika tidak, kredensial akses mungkin bocor. Akibatnya, keamanan semua sumber daya di akun Anda terganggu. Dalam contoh ini, kredensial akses diperoleh dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan variabel lingkungan telah dikonfigurasi. 
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())

# Tentukan titik akhir wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah Cina (Hangzhou), atur titik akhir menjadi https://oss-cn-hangzhou.aliyuncs.com. 
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# Tentukan wilayah titik akhir. Contoh: cn-hangzhou. Parameter ini diperlukan jika Anda menggunakan algoritma tanda tangan V4.
region = "cn-hangzhou"

# Tentukan ukuran kolam koneksi. Nilai default: 10. 
session = oss2.Session(pool_size=20)

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

Tentukan versi TLS

Versi Transport Layer Security (TLS) yang berbeda memiliki fitur keamanan dan performa yang berbeda. Pilih versi TLS berdasarkan skenario Anda.

Catatan

Anda dapat menentukan versi TLS di OSS SDK untuk Python 2.18.1 atau yang lebih baru.

Kode sampel berikut menunjukkan cara menyetel versi TLS menjadi 1.2:

# -*- coding: utf-8 -*-
import ssl
import oss2
from requests.adapters import HTTPAdapter
from oss2.credentials import EnvironmentVariableCredentialsProvider

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

# Konfigurasikan adaptor SSL. 
class SSLAdapter(HTTPAdapter):
    def init_poolmanager(self, *args, **kwargs):
        # Setel versi TLS menjadi 1.2. 
        kwargs["ssl_version"] = ssl.PROTOCOL_TLSv1_2
        return super().init_poolmanager(*args, **kwargs)

# Buat objek sesi dan konfigurasikan adaptor menggunakan objek sesi. 
session = oss2.Session(adapter=SSLAdapter())

# Tentukan titik akhir wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah Cina (Hangzhou), atur titik akhir menjadi https://oss-cn-hangzhou.aliyuncs.com. 
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# Tentukan wilayah titik akhir. Contoh: cn-hangzhou. Parameter ini diperlukan jika Anda menggunakan algoritma tanda tangan V4.
region = "cn-hangzhou"

# Tentukan nama bucket. Contoh: examplebucket. 
bucket = oss2.Bucket(auth, endpoint, 'examplebucket', session=session, region=region)

# Unggah objek. 
bucket.put_object("example.txt", "hello")

Parameter yang didukung oleh kelas oss2.Bucket

Tabel berikut menjelaskan parameter yang dapat dikonfigurasi saat menginisialisasi kelas oss2.Bucket.

Parameter

Contoh

Deskripsi

Metode

is_cname

True

Menentukan apakah titik akhir adalah nama domain kustom. Nilai valid:

  • True

  • False (default)

oss2.Bucket(auth, cname, 'examplebucket', is_cname=True, region=region)

session

mytestsession

Nama sesi, yang menentukan bahwa sesi baru dimulai. Nilai default: None. Jika Anda menyetel parameter ini ke nama sesi yang ada, sesi tersebut digunakan kembali.

oss2.Bucket(auth, endpoint, 'examplebucket', session=oss2.Session(), region=region)

connect_timeout

30

Periode timeout koneksi. Nilai default: 60. Satuan: detik.

oss2.Bucket(auth, endpoint, 'examplebucket', connect_timeout=30, region=region)

app_name

mytool

Nama aplikasi yang menggunakan OSS SDK untuk Python. Secara default, parameter ini dibiarkan kosong. Jika parameter ini tidak kosong, tentukan nilai yang sesuai di bidang User-Agent.

Penting

String dilewatkan sebagai nilai header HTTP dan harus mematuhi standar HTTP.

oss2.Bucket(auth, endpoint, 'examplebucket', app_name='mytool', region=region)

enable_crc

False

Menentukan apakah akan mengaktifkan CRC-64.

  • True (default)

  • False

oss2.Bucket(auth, endpoint, 'examplebucket', enable_crc=False, region=region)

FAQ

Jika Anda ingin mengakses OSS menggunakan layanan Alibaba Cloud lainnya di wilayah yang sama dengan bucket, apakah saya dapat menggunakan titik akhir internal untuk mempercepat transfer data?

Ya, Anda dapat menggunakan titik akhir internal untuk mempercepat transfer data. Jika memiliki persyaratan pada transfer data, kami merekomendasikan agar Anda mengakses OSS menggunakan layanan Alibaba Cloud lainnya, seperti instance ECS, di wilayah yang sama dengan OSS. Untuk informasi lebih lanjut, lihat Akses dari instance ECS di wilayah yang sama.

Bagaimana cara melihat ID AccessKey Pengguna RAM? Bisakah saya melihat Rahasia AccessKey dari Pasangan Kunci Akses lama?

  1. Untuk melihat ID AccessKey Pengguna RAM, masuk ke Konsol RAM.

  2. Rahasia AccessKey Pengguna RAM hanya ditampilkan saat Pasangan Kunci Akses dibuat. Anda tidak dapat melihat Pasangan Kunci Akses di kemudian waktu. Jika lupa Rahasia AccessKey, Anda tidak dapat mengambilnya. Anda dapat langsung memilih Pengguna RAM tertentu di Konsol RAM dan membuat Pasangan Kunci Akses baru untuk rotasi. Untuk informasi lebih lanjut, lihat Buat Pasangan Kunci Akses.

Jika kesalahan dilaporkan, bagaimana cara menentukan jenis kesalahan spesifik?

OSS menyediakan Kode kesalahan untuk membantu menentukan jenis kesalahan spesifik. Sebagai contoh, lihat 02-AUTH untuk kesalahan otentikasi umum.