Library klien App Engine untuk Cloud Storage menyediakan fungsi berikut:
Fungsi
- cloudstorage.copy2() menyalin file yang ditentukan ke nama file baru yang ditentukan di bucket Cloud Storage yang sama.
- cloudstorage.delete() menghapus objek yang ditentukan dari bucket Cloud Storage.
- cloudstorage.listbucket() mencantumkan objek di bucket Cloud Storage.
- cloudstorage.open() membuka objek yang sudah ada di bucket Cloud Storage untuk dibaca atau ditimpa, atau membuat objek baru, tergantung mode yang ditentukan
- cloudstorage.stat() memberikan informasi metadata tentang file, seperti jenis konten, ukuran, stempel waktu, ringkasan MD5, dan header Cloud Storage.
Setelah cloudstorage.open()
dipanggil untuk menampilkan objek mirip file yang mewakili objek Cloud Storage yang ditentukan, Anda dapat menggunakan fungsi file Python standar, seperti write()
dan close()
, untuk menulis
objek ke bucket Cloud Storage, atau read()
untuk membaca objek dari
bucket Cloud Storage.
Class
Fungsi
- cloudstorage.copy2 (src, dst, metadata=None, retry_params=None)
-
Menyalin file yang ditentukan ke nama file baru yang ditetapkan, secara default sekaligus menyalin metadata. Secara opsional, Anda dapat menimpa metadata dalam salinan dengan memberikan parameter
metadata
opsional.Mengajukan cloudstorage.NotFoundError jika objek Cloud Storage yang ditentukan tidak ada atau cloudstorage.AuthorizationError jika otorisasi gagal.
Argumen
- src (Wajib)
- Nama lengkap file Cloud Storage untuk objek, dalam format
/bucket/object_name
. Harus berupa nama file lengkap dan dapat menyertakan pemisah `/`. - dst (Wajib)
- Nama lengkap file Cloud Storage untuk salinan objek, dalam format
/bucket/object_name
. Harus berupa nama file lengkap dan dapat menyertakan pemisah `/`. - metadata= None (Opsional.)
- Teks metadata untuk salinan ini, misalnya,
{'x-goog-meta-foo': 'bar'}
. Jika Anda memberikan parameter metadata, tidak ada metadata asli yang akan disalin ke file baru. Jika tidak ada metadata yang diberikan, (None
), semua metadata file sumber akan disalin. - retry_params= None (Opsional.)
- Objek RetryParams tempat Anda memberikan perubahan yang ingin Anda buat ke waktu tunggu default dan setelan percobaan ulang untuk panggilan ini.
Contoh
- Untuk menyalin file, tetapi menambahkan metadata baru dan mengabaikan error jika file sumber tidak ada:
-
import cloudstorage try: cloudstorage.copy2('/my_bucket/README', '/my_bucket/README2', metadata={'x-goog-meta-zzzzz': 'zzzzz'}) except cloudstorage.NotFoundError: pass
- cloudstorage.delete (filename, retry_params=None)
-
Menghapus file yang ditentukan dari bucket Cloud Storage.
Mengajukan cloudstorage.NotFoundError jika objek Cloud Storage yang ditentukan tidak ada.
Argumen
- filename (Wajib)
- Nama lengkap file Cloud Storage untuk objek, dalam format
/bucket/object_name
. Harus berupa nama file lengkap dan dapat menyertakan pemisah `/`. - retry_params= None (Opsional.)
- Objek RetryParams tempat Anda memberikan perubahan yang ingin Anda buat ke waktu tunggu default dan setelan percobaan ulang untuk panggilan ini.
Contoh
- Untuk menghapus file, tetapi mengabaikan error jika file tidak ada:
-
import cloudstorage try: cloudstorage.delete(filename) except cloudstorage.NotFoundError: pass
- cloudstorage.listbucket (path_prefix, marker=None, max_keys=None, delimiter=None, retry_params=None)
- Mengembalikan objek iterator bucket. Iterator ini menampilkan daftar objek yang diurutkan yang cocok dengan semua filter. Perhatikan bahwa fungsi ini bersifat asinkron. Ini tidak akan memblokir kecuali jika iterator dipanggil sebelum iterator mendapatkan hasil.
Fungsi ini beroperasi dalam dua mode berbeda, bergantung pada apakah Anda menggunakan argumen
delimiter
atau tidak:- Mode reguler (default): Mencantumkan semua file di bucket tanpa konsep hierarki apa pun. (Cloud Storage tidak memiliki hierarki direktori yang sebenarnya.)
- Mode emulasi direktori: Jika Anda menentukan argumen
delimiter
, argumen ini akan digunakan sebagai pemisah jalur untuk mengemulasikan hierarki direktori.
Argumen
- path_prefix (Wajib)
- Jalur Cloud Storage dengan format
/bucket
atau/bucket/prefix
, misalnya,/bucket/foo/2001
. Hanya objek yang jalur lengkapnya dimulai denganpath_prefix
yang akan ditampilkan. - marker= None (Opsional)
- String. Awalan jalur lainnya. Hanya objek yang jalur lengkapnya dimulai secara leksikografis setelah penanda secara eksklusif yang akan ditampilkan. File yang digunakan sebagai `penanda` tidak ditampilkan. Misalnya, jika Anda ingin semua file yang terdaftar mulai dari
superduperfoo3.txt
dicantumkan, Anda harus menentukan file tepat sebelumsuperduperfoo3.txt
, misalnya:stat = cloudstorage.listbucket("/my_bucket/foo", marker='/my_bucket/foo/superduperfoo2.txt')
Salah satu cara untuk menggunakan parameter ini adalah menggunakannya denganmax_keys
untuk melakukan "page-through" pada nama file bucket. - max_keys= None (Opsional)
- Integer. Menentukan jumlah maksimum objek yang akan ditampilkan. Gunakan
ini jika Anda mengetahui jumlah objek yang diinginkan. (Jika tidak, library klien Cloud Storage akan otomatis melakukan buffering dan melakukan penomoran halaman pada semua hasil.) Dapat digunakan dengan
marker
untuk menelusuri nama file dalam bucket.stats = cloudstorage.listbucket(bucket + '/foo', max_keys=page_size, marker=stat.filename)
- delimiter= None (Opsional)
- String. Mengaktifkan mode direktori. Anda dapat menentukan satu atau beberapa karakter untuk digunakan sebagai pemisah direktori.
- retry_params= None (Opsional.)
- Objek RetryParams tempat Anda memberikan perubahan yang ingin Anda buat ke waktu tunggu default dan setelan percobaan ulang untuk panggilan ini.
Nilai Hasil
Menampilkan iterator objek GCSFileStat pada file yang cocok, yang diurutkan menurut nama file. Dalam mode reguler, objek
GCSFileStat
yang ditampilkan memiliki data berikut:filename
etag
(Representasi heksadesimal dari hash MD5 konten file)st_size
(panjang konten header)st_ctime
is_dir
Catatan: Jika properti
is_dir
objekGCSFileStat
adalahTrue
, satu-satunya properti lain dalam objek tersebut adalahfilename
. Jikais_dir
adalahFalse
, makaGCSFileStat
juga berisi semua properti lainnya. - cloudstorage.open(filename, mode='r', content_type=None, options=None, read_buffer_size=storage_api.ReadBuffer.DEFAULT_BUFFER_SIZE, retry_params=None)
-
Dalam mode baca (
r
), objek Cloud Storage yang ditentukan akan dibuka untuk dibaca. Dalam mode tulisw
, jika file yang ditentukan ada, file tersebut akan dibuka untuk ditimpa (tambahkan tidak didukung). Jika tidak ada, file akan dibuat di bucket yang ditentukan.Setelah selesai menulis, jika Anda ingin membaca file dan/atau menyimpannya di Cloud Storage, tutup file tersebut menggunakan fungsi
close
. Bukanlah error jika Anda tidak memanggilclose
, tetapi file tidak akan dapat dibaca atau disimpan di Cloud Storage.Memunculkan:
- cloudstorage.NotFoundError jika dalam mode baca dan objek yang ditentukan tidak ada.
Argumen
- filename (Wajib)
- File yang akan dibuka, dalam format
/bucket/object
. Contoh,/my_bucket/lyrics/southamerica/list5.txt
- mode (Opsional)
- String. Tentukan 'r' untuk membuka file agar dibaca (default). Tentukan 'w' untuk membuka file yang sudah ada untuk menimpa atau membuat file baru.
- content_type: (Opsional)
- String. Hanya digunakan dalam mode tulis. Anda harus menentukan jenis MIME file (Anda dapat menentukan jenis MIME yang valid). Jika Anda tidak memberikan nilai ini, Cloud Storage secara default akan menggunakan jenis
binary/octet-stream
saat menyajikan objek. - opsi: (Opsional)
Dict. Hanya digunakan dalam mode tulis. Opsi yang didukung adalah
x-goog-acl
,x-goog-meta-
,cache-control
,content-disposition
dancontent-encoding
.Jika Anda tidak memberikan opsi
x-goog-acl
, Cloud Storage akan menggunakan ACL default bucket. Nilai yang valid untukx-goog-acl
tercantum dalam dokumentasi Cloud Storage untuk x-goog-acl.Anda dapat menentukan metadata objek kustom menggunakan header x-goog-meta-. Contoh:
gcs_file = cloudstorage.open(filename, 'w', content_type='text/plain', options={'x-goog-acl': 'private','x-goog-meta-foo': 'foo', 'x-goog-meta-bar': 'bar'})
- read_buffer_size: (Opsional)
- Integer. Hanya digunakan dalam mode baca. Jika Anda tidak menetapkan nilai ini,
ukuran buffer default akan digunakan (direkomendasikan). Saat membaca, Anda harus
membaca dengan
read_buffer_size
demi performa pengambilan data yang optimal. - retry_params= None (Opsional.)
- Objek RetryParams tempat Anda memberikan perubahan yang ingin Anda buat ke waktu tunggu default dan setelan percobaan ulang untuk panggilan ini.
Nilai Hasil
Mengembalikan buffer pembacaan atau penulisan, yang mendukung antarmuka seperti file tempat Anda dapat memanggil fungsi
read
,write
, danclose
Python standar. Buffer ini harus ditutup setelah Anda selesai membaca atau menulis. - cloudstorage.stat(filename, retry_params=None)
-
Menampilkan objek GCSFileStat yang berisi metadata file.
Mengajukan cloudstorage.NotFoundError jika objek Cloud Storage yang ditentukan tidak ada.
Argumen
- filename (Wajib)
- File yang akan dibuka, dalam format
/bucket/object
. Contoh,/my_bucket/lyrics/southamerica/list5.txt
- retry_params= None (Opsional.)
- Objek RetryParams tempat Anda memberikan perubahan yang ingin Anda buat ke waktu tunggu default dan setelan percobaan ulang untuk panggilan ini.
Nilai Hasil
Menampilkan objek GCSFileStat yang berisi metadata file.