Bu konu, gereksiz ücretlerden kaçınmak için artık ihtiyaç duymadığınız nesneleri, parçaları veya paketleri silmek amacıyla rm komutunun nasıl çalıştırılacağını açıklar.
Kullanım notları
Tek bir nesneyi silmek için
oss:DeleteObjectiznine sahip olmanız gerekir. Bir dizindeki tüm nesneleri silmek içinoss:DeleteObjectveoss:ListObjectsizinlerine sahip olmanız gerekir. Belirli bir nesne sürümünü silmek içinoss:DeleteObjectVersioniznine sahip olmanız gerekir. Bir paketteki tüm nesne sürümlerini silmek içinoss:ListObjectVersionsveoss:DeleteObjectVersionizinlerine sahip olmanız gerekir. Bir dizindeki tüm nesne sürümlerini silmek içinoss:DeleteObjectVersionveoss:ListObjectsizinlerine sahip olmanız gerekir. Bir nesnenin parçalarını silmek içinoss:ListMultipartUploadsveoss:AbortMultipartUploadizinlerine sahip olmanız gerekir. Bir paketteki tüm nesneleri ve parçaları silmek içinoss:ListMultipartUploads,oss:AbortMultipartUpload,oss:ListObjectsveoss:DeleteObjectizinlerine sahip olmanız gerekir. Bir paketi silmek içinoss:DeleteBucketiznine sahip olmanız gerekir.ossutil 1.6.16 ve sonraki sürümlerde, komut satırında ikili dosya adı olarak doğrudan ossutil kullanabilirsiniz. İşletim sistemine göre ikili dosya adını güncellemeniz gerekmez. 1.6.16'dan önceki ossutil sürümlerinde işletim sistemine göre ikili dosya adını güncellemeniz gerekir. Daha fazla bilgi için bkz. ossutil komut referansı.
Komut sözdizimi
ossutil rm oss://bucketname[/prefix]
[-r, --recursive]
[-b, --bucket]
[-m, --multipart]
[-a, --all-type]
[-f, --force]
[--include <value>]
[--exclude <value>]
[--version-id <value>]
[--all-versions]
[--payer <value>]
[--encoding-type <value>]
Aşağıdaki tabloda sözdizimindeki parametreler ve seçenekler açıklanmaktadır.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Belirtilen koşulları karşılayan tüm nesneleri dahil eder. Daha fazla bilgi için bkz. --include ve --exclude seçenekleri. |
|
|
Belirtilen koşulları karşılayan tüm nesneleri hariç tutar. Daha fazla bilgi için bkz. --include ve --exclude seçenekleri. |
|
|
|
|
|
|
|
|
|
|
|
|
Nesneleri silme
Nesneler silindikten sonra kurtarılamaz. Bu işlemi gerçekleştirirken dikkatli olun.
Bir veya daha fazla nesneyi silmek için -r seçeneğiyle veya bu seçenek olmadan rm komutunu kullanırsanız ListObjects (GetBucket) ve DeleteObject işlemleri çağrılır. Bu durumda PUT istekleri gönderdiğiniz için ücretlendirilirsiniz. Daha fazla bilgi için bkz. İstek ücretleri.
Nesneleri silmek için bir rm komutuna --include ve --exclude seçeneklerini dahil ederseniz yanlış koşul yapılandırmaları nedeniyle yanlışlıkla silmeler gerçekleşebilir. Her iki seçeneği de bir rm komutuna dahil ederken dikkatli olmanızı öneririz.
--include seçeneğinde ve --exclude seçeneğinde birden fazla koşul belirtebilirsiniz. Tüm koşullar nesneleri eşleştirmek için soldan sağa doğru uygulanır. Birden fazla koşul belirtirseniz --include seçeneğini --exclude seçeneğinden önce belirtmenizi öneririz.
-
Örnekler
-
Tek bir nesneyi silme
examplebucket adlı bir paketten exampleobject.txt adlı bir nesneyi silin.
ossutil rm oss://examplebucket/exampleobject.txt -
examplebucket adlı bir paketten adı "test" ön ekini içeren tüm nesneleri silin.
ossutil rm oss://examplebucket/test -r -
examplebucket adlı bir paketten adı ".png" son ekini içeren tüm nesneleri silin.
ossutil rm oss://examplebucket --include "*.png" -r -
examplebucket adlı bir paketten adı "abc" dizesini içeren ancak ".jpg" veya ".txt" son ekini içermeyen nesneleri silin.
ossutil rm oss://examplebucket --include "*abc*" --exclude "*.jpg" --exclude "*.txt" -r -
Sürüm oluşturmanın etkinleştirildiği examplebucket adlı bir paketten exampleobject.txt adlı bir nesnenin belirli bir sürümünü silin.
ossutil rm oss://examplebucket/exampleobject.txt --version-id CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3****Bir nesnenin tüm sürümlerini nasıl elde edeceğiniz hakkında daha fazla bilgi için bkz. ls.
-
Sürüm oluşturmanın etkinleştirildiği examplebucket adlı bir paketten exampleobject.txt adlı bir nesnenin tüm sürümlerini silin.
ossutil rm oss://examplebucket/exampleobject.txt --all-versions -
Sürüm oluşturmanın etkinleştirildiği examplebucket adlı bir paketten tüm nesnelerin tüm sürümlerini silin.
ossutil rm oss://examplebucket --all-versions -r
NotBir nesne adı SOH (0x01), BS (0x08) veya DEL (0x7F) gibi kontrol karakterleri içeriyorsa
ossutil rmkomutunu--encoding-typeseçeneği olmadan çalıştırmak, nesne adı doğru ayrıştırılmadığından nesneyi eşleştiremez. Benzer şekilde,ossutil lskomutunu--encoding-typeolmadan çalıştırmak bu kontrol karakterlerini görüntülemez; bu nedenle nesne pakette hala mevcut olsa bile eksik görünür. ossutil'in kontrol karakterleri içeren nesne adlarını doğru görüntülemesi ve eşleştirmesi için--encoding-type urlseçeneğini belirtin. -
-
Örnek çıktı
Başarılı bir yanıt, silinen nesne sayısını ve silme işleminin tamamlanması için geçen süreyi içerir:
Succeed: Total 8 objects. Removed 8 objects. 0.106852(s) elapsed
Parçaları silme
Parçaları silmek için birden fazla seçeneğe sahip rm komutunu kullanırsanız ListMultipartUploads, ListParts ve AbortMultipartUpload işlemleri çağrılır. Bu durumda ListMultipartUploads ve ListParts işlemleri çağrıldığında GET istekleri gönderdiğiniz için ve AbortMultipartUpload işlemi çağrıldığında PUT istekleri gönderdiğiniz için ücretlendirilirsiniz. Daha fazla bilgi için bkz. İstek ücretleri.
-
Örnekler
-
Komutta -m seçeneğini belirterek examplebucket adlı bir paketten exampleobject.txt adlı bir nesnenin tamamlanmamış çok parçalı yükleme görevleri tarafından oluşturulan parçaları silin.
ossutil rm -m oss://examplebucket/exampleobject.txt -
Komutta -m ve -r seçeneklerini belirterek examplebucket adlı bir paketten adı "test" ön ekini içeren nesnelerin tamamlanmamış çok parçalı yükleme görevleri tarafından oluşturulan parçaları özyinelemeli olarak silin.
ossutil rm -m oss://examplebucket/test -r Do you really mean to remove recursively multipart uploadIds of oss://examplebucket/test(y or N)? y -
Komutta -a ve -r seçeneklerini belirterek examplebucket adlı bir paketten adı "src" ön ekini içeren nesneleri ve bu nesnelerin tamamlanmamış çok parçalı yükleme görevleri tarafından oluşturulan parçaları özyinelemeli olarak silin.
ossutil rm oss://examplebucket/src -a -r Do you really mean to remove recursively objects and multipart uploadIds of oss://examplebucket/src(y or N)? y
-
-
Örnek yanıt
Başarılı bir yanıt, silinen nesne sayısını, silinen parçaların oluşturulduğu çok parçalı yükleme görevlerinin sayısını ve silme işleminin tamamlanması için geçen süreyi içerir:
Succeed: Total 1 objects, 3 uploadIds. Removed 1 objects, 3 uploadIds. 1.922915(s) elapsed
Paketleri silme
-
Hiç nesne veya parça içermeyen examplebucket paketini silin.
ossutil rm oss://examplebucket -b Do you really mean to remove the Bucket: examplebucket(y or N)? yBaşarılı bir yanıt, silinen paketin adını ve paketin silinmesi için geçen süreyi içerir:
Removed Bucket: examplebucket 2.230745(s) elapsed -
examplebucket adlı bir paketi ve paketteki tüm nesneleri ve parçaları silin.
UyarıAşağıdaki komutu çalıştırırsanız paketteki tüm veriler silinir ve silinen veriler kurtarılamaz. Bu işlemi gerçekleştirirken dikkatli olun.
ossutil rm oss://examplebucket -b -a -r Do you really mean to remove recursively objects and multipart uploadIds of oss://examplebucket(y or N)? y Do you really mean to remove the Bucket: examplebucket(y or N)? yBaşarılı bir yanıt, silinen nesne sayısını, silinen parçaların oluşturulduğu çok parçalı yükleme görevlerinin sayısını, silinen paketin adını ve silme işleminin tamamlanması için geçen süreyi içerir:
Succeed: Total 189 objects, 37 uploadIds. Removed 189 objects, 37 uploadIds. Removed Bucket: examplebucket 9.184193(s) elapsed
Sorun giderme
SOH (0x01), BS (0x08) veya DEL (0x7F) gibi kontrol karakterleri içeren nesneler bulunduğundan ossutil rm -b -a -r başarısız olursa paketi silmek için aşağıdaki alternatif iş akışını kullanın:
-
Kontrol karakterlerinin görünür olması için nesne adlarını URL kodlamalı olarak listeleyerek paketteki nesneleri listele:
ossutil api list-objects --bucket <bucket_name> --encoding-type url --output-format json -
Kodlanmış nesne adlarını kullanarak bir silme isteği gövdesi oluştur ve nesneleri toplu olarak sil:
ossutil api delete-multiple-objects --bucket <bucket_name> --encoding-type url2 --delete file://delete-objects.xml -
Artık boş olan paketi sil:
ossutil rb oss://<bucket_name>
ossutil 2.x'te bir paketi silmek için -b seçeneği artık desteklenmemektedir. rm -b yerine rb komutunu kullanın.
Bir nesne anahtarına NUL baytı (0x00) dahil edilemez. Adında NUL baytı içeren bir nesne oluşturmaya çalışırsanız OSS 400 BadRequest hatası döndürür.
Ortak seçenekler
Farklı bir bölgedeki bir pakete erişmek için uç noktayı belirtmek üzere -e seçeneğini kullanın. Farklı bir Alibaba Cloud hesabına ait bir pakete erişmek için AccessKey ID için -i ve AccessKey gizli anahtarı için -k seçeneğini kullanın.
Örneğin, Çin (Şanghay) bölgesinde bulunan ve başka bir Alibaba Cloud hesabına ait olan testbucket adlı bir paketten exampletest.png adlı bir nesneyi silmek için aşağıdaki komutu çalıştırabilirsiniz:
ossutil rm oss://testbucket/exampletest.png -e oss-cn-shanghai.aliyuncs.com -i yourAccessKeyID -k yourAccessKeySecret