Topik ini menjelaskan masalah umum saat menggunakan ossutil dan solusinya.
Mulai dari ossutil v1.6.16, Anda dapat menggunakan ossutil sebagai nama perintah secara langsung, terlepas dari sistem operasi yang digunakan. Untuk versi sebelum v1.6.16, Anda harus menggunakan nama eksekusi khusus sistem operasi. Untuk informasi selengkapnya, lihat referensi perintah ossutil.
Apakah ossutil mendukung signature V4?
Ya, ossutil V1.7.12 dan versi setelahnya mendukung signature V4. Untuk informasi selengkapnya, lihat Sertakan signature V4 dalam header Authorization (disarankan).
ossutil menambahkan opsi --sign-version dan --region ke perintah yang sudah ada. Perintah berikut membuat bucket di wilayah China (Hangzhou) menggunakan signature V4:
./ossutil64 --sign-version v4 --region cn-hangzhou mb oss://examplebucket
Apakah sinkronisasi objek didukung untuk objek Infrequent Access dan Standard?
Ya, ossutil mendukung sinkronisasi objek untuk objek Infrequent Access (IA) maupun Standard. Untuk informasi selengkapnya, lihat Ikhtisar.
Bagaimana cara mencegah penimpaan objek dengan nama yang sama?
Tambahkan opsi -u ke perintah ossutil Anda. Dengan opsi ini, ossutil tidak akan menimpa objek yang sudah ada dengan nama yang sama.
Mengapa saya melihat pesan 'skip' saat mengunggah objek dengan opsi -u?
Ini adalah perilaku yang diharapkan. Saat Anda menggunakan opsi -u, ossutil membandingkan waktu modifikasi terakhir objek yang sedang diunggah dengan objek yang sudah ada dengan nama yang sama di bucket tujuan. Jika waktu modifikasi terakhir objek yang sudah ada sama dengan atau lebih baru daripada objek yang sedang diunggah, ossutil akan melewatkannya. Pesan skip merupakan hal normal saat Anda menggunakan opsi -u untuk mengunggah objek.
Jika objek di bucket adalah versi yang ingin Anda pertahankan, Anda dapat mengabaikan pesan skip tersebut dengan aman.
Mengapa saya mendapatkan error HTTP 403 saat memulihkan objek?
Error HTTP 403 pada pemulihan objek disebabkan oleh salah satu dari dua hal berikut:
Pengguna Resource Access Management (RAM) yang menjalankan operasi tidak memiliki izin yang diperlukan.
OSS telah memblokir objek karena berisi konten yang dilarang.
Solusi:
Izin tidak mencukupi: Berikan izin yang diperlukan kepada pengguna RAM.
Pelanggaran konten: Hapus atau abaikan objek yang diblokir.
Mengapa saya tidak dapat menghapus bucket yang tampak kosong setelah menjalankan perintah ls?
Perintah ls tanpa opsi tidak menampilkan bagian unggah multi-bagian yang belum lengkap atau versi objek sebelumnya di bucket yang diaktifkan versioning. Jika bucket berisi salah satu dari keduanya, bucket tersebut sebenarnya tidak kosong dan tidak dapat dihapus hanya dengan perintah rm.
Untuk menghapus bucket tersebut, gunakan salah satu pendekatan berikut:
Bucket dan objek yang dihapus tidak dapat dipulihkan. Berhati-hatilah saat menjalankan perintah-perintah ini.
-
Hapus terlebih dahulu bagian dan versi sebelumnya, lalu hapus bucket.
-
Hapus bagian unggah multi-bagian yang belum lengkap dan semua versi objek.
-
Daftar dan hapus bagian unggah multi-bagian yang belum lengkap:
./ossutil64 ls oss://bucket1 -m ./ossutil64 rm -m oss://bucket1 -r -
Daftar dan hapus semua versi objek (untuk bucket yang diaktifkan versioning):
./ossutil64 ls oss://bucket1 --all-versions ./ossutil64 rm oss://bucket1 --all-versions -r
-
-
Hapus bucket.
./ossutil64 rm oss://bucket1 -b
-
-
Hapus bucket secara paksa dalam satu perintah.
-
Jika versioning dinonaktifkan:
./ossutil64 rm oss://bucketname -abrf -
Jika versioning diaktifkan:
./ossutil64 rm oss://bucketname -abrf --all-versions
-
Mengapa progres unggah atau unduh melebihi 100%?
Untuk objek yang lebih besar dari 100 MB, ossutil secara default menggunakan unggah yang dapat dilanjutkan atau unduhan yang dapat dilanjutkan dan menyimpan file checkpoint di direktori .ossutil_checkpoint. Saat beberapa instans ossutil dijalankan secara bersamaan pada mesin yang sama, mereka berbagi direktori checkpoint default ini. Ketika satu instans selesai dan menghapus direktori .ossutil_checkpoint, status checkpoint untuk transfer lain yang sedang berlangsung menjadi rusak, sehingga penghitung progres menampilkan nilai yang salah (seperti melebihi 100%) dan transfer gagal.
Untuk memperbaiki hal ini:
Hentikan tugas yang gagal dan mulai ulang unggah atau unduh.
-
Saat menjalankan tugas secara bersamaan, tetapkan direktori checkpoint unik untuk masing-masing menggunakan opsi --checkpoint-dir bersama perintah cp:
./ossutil64 cp oss://bucket1/myphoto.jpg /dir --checkpoint-dir checkpoint
Mengapa beberapa permintaan dicatat saat mengunduh satu objek?
Dua perilaku menyebabkan entri log tambahan:
Retry otomatis: ossutil secara otomatis mencoba ulang permintaan yang gagal atau mengalami pengecualian, hingga 10 kali secara default.
Permintaan rentang (range requests): Untuk objek yang lebih besar dari 100 MB, ossutil mengunduh objek tersebut dalam beberapa bagian menggunakan range request. Setiap bagian menghasilkan entri log terpisah.
Apa yang harus saya lakukan jika unduhan objek besar terganggu?
-
Penyebab umum gangguan unduhan:
-
Timeout atau terputus karena unduhan yang lama.
Faktor penyebab: pembatasan bandwidth jaringan dan stabilitas jaringan yang buruk.
-
Unduhan mengembalikan kode kesalahan end-of-file (EOF) dan tugas terganggu.
Hal ini biasanya disebabkan oleh koneksi yang terputus atau kecepatan baca/tulis disk yang tidak mampu mengimbangi laju unduhan.
-
-
Solusi: Gunakan unduhan yang dapat dilanjutkan.
-
Tentukan direktori checkpoint menggunakan opsi
--checkpoint-dir. Jika transfer terganggu, ossutil akan melanjutkan dari titik terakhir menggunakan file checkpoint yang tersimpan../ossutil64 cp examplefile.txt oss://examplebucket/desfolder/ --checkpoint-dir localfolder/ Untuk informasi selengkapnya tentang
--checkpoint-dir, lihat Sintaks perintah.
-
Mengapa saya mendapatkan error Error: accessKeyID dan ecsUrl keduanya kosong?
ossutil tidak dapat menemukan file konfigurasi di direktori home Anda.
Untuk mengatasi hal ini, gunakan salah satu pendekatan berikut:
Buat file konfigurasi di direktori home Anda sebelum menjalankan perintah ossutil. Untuk informasi selengkapnya, lihat Instal ossutil.
-
Berikan jalur ke file konfigurasi secara eksplisit pada setiap perintah menggunakan opsi
-c:./ossutil64 cp examplefile.txt oss://examplebucket/destfolder/ -c /home/admin/.ossutilconfig
Mengapa charset=utf-8 ditambahkan ke Content-Type objek yang diunggah?
ossutil menentukan Content-Type objek dengan mencari tipe Multipurpose Internet Mail Extensions (MIME) berdasarkan ekstensi file menggunakan pustaka MIME standar Go. Pustaka ini secara otomatis menambahkan charset=utf-8 ke tipe MIME berbasis teks. Sebagai contoh, file .htm akan memiliki Content-Type text/html; charset=utf-8.
Tingkatkan ossutil ke versi 1.7.14 atau yang lebih baru untuk mengatasi masalah ini dengan melakukan instalasi ulang. Untuk informasi selengkapnya, lihat Instal ossutil.
Bisakah saya menggunakan ossutil untuk menanyakan ukuran direktori?
Ya, jalankan perintah du. Perintah ini memanggil API ListObjects untuk mengambil semua objek di bawah awalan yang ditentukan dan menghitung ukuran totalnya. Untuk direktori dengan jumlah objek yang besar, operasi ini mungkin memerlukan waktu.
Untuk informasi selengkapnya, lihat du.
Bagaimana cara menghasilkan URL yang ditandatangani yang berisi nama domain kustom?
-
Konfigurasikan nama domain kustom untuk bucket.
Untuk informasi selengkapnya, lihat Konfigurasikan nama domain kustom.
-
Jalankan perintah sign untuk menghasilkan URL yang ditandatangani.
Untuk informasi selengkapnya, lihat sign (hasilkan URL yang ditandatangani).
Bisakah saya mengurutkan hasil saat mendaftar objek dengan ossutil?
Tidak, ossutil tidak mendukung pengurutan hasil saat mendaftar objek.
Mengapa saya mendapatkan error 'no such host' saat menjalankan perintah ossutil?
Titik akhir tidak valid. Tentukan titik akhir yang valid menggunakan opsi -e, atau perbarui titik akhir di file konfigurasi Anda. Opsi -e menggunakan titik akhir untuk wilayah bucket, misalnya -e oss-cn-shanghai.aliyuncs.com. Jangan sertakan karakter tambahan dalam string titik akhir. Untuk daftar titik akhir, lihat Wilayah dan titik akhir.
Bagaimana saya dikenai biaya untuk perintah du?
Perintah du dikenai biaya permintaan API. Tanpa --all-versions, perintah ini memanggil ListObjects. Dengan --all-versions, perintah ini memanggil ListObjectVersions. Dalam kedua kasus tersebut, perintah ini juga memanggil ListMultipartUploads. Untuk informasi selengkapnya, lihat Biaya permintaan.
Jika bucket berisi bagian dari unggah multi-bagian yang belum lengkap, biaya untuk permintaan ListUploadedParts juga akan dikenakan.