全部产品
Search
文档中心

Object Storage Service:DeleteDirectory

更新时间:Jul 02, 2025

Operasi ini digunakan untuk menghapus direktori dan hanya berlaku untuk bucket dengan fitur namespace hierarkis diaktifkan.

Catatan

  • Untuk menghapus direktori, gunakan salah satu metode berikut:

    • Hapus rekursif: Semua objek dan subdirektori dalam direktori akan dihapus.

    • Hapus non-rekursif: Direktori dapat dihapus jika kosong.

  • Metode penghapusan yang berbeda memerlukan izin yang berbeda.

    • Saat menggunakan metode hapus rekursif, Anda harus memiliki izin DeleteObject pada direktori serta semua objek dan subdirektori di dalamnya.

      Sebagai contoh, untuk menghapus direktori oss dari direktori desktop secara rekursif, Anda harus memiliki izin DeleteObject pada direktori desktop/osstest dan semua objek serta subdirektori di dalamnya.

    • Untuk menggunakan metode hapus non-rekursif, Anda harus memiliki izin DeleteObject pada direktori tersebut.

      Sebagai contoh, untuk menghapus direktori dir dari direktori desktop secara non-rekursif, Anda harus memiliki izin DeleteObject pada direktori desktop/dir.

  • Jika permintaan bersamaan dikirim untuk menulis data ke direktori saat menggunakan metode hapus rekursif, penghapusan direktori mungkin gagal.

Struktur permintaan

POST /objectName?x-oss-delete HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue

Header permintaan

Header

Tipe

Diperlukan

Deskripsi

x-oss-delete-recursive

String

Tidak

Menentukan apakah akan menghapus direktori secara rekursif.

  • Jika Anda tidak menentukan x-oss-delete-recursive atau menetapkan x-oss-delete-recursive ke false, metode hapus non-rekursif digunakan. Direktori hanya dapat dihapus jika direktori tersebut kosong.

  • Jika Anda menetapkan x-oss-delete-recursive ke true, metode hapus rekursif digunakan. Direktori serta semua objek dan subdirektori dalam direktori tersebut dihapus.

Nilai default: false

x-oss-delete-token

String

Tidak

Nama objek atau direktori setelah operasi penghapusan berikutnya dimulai. Opsi ini hanya valid ketika x-oss-delete-recursive disetel ke true.

Opsi ini kosong saat Anda memanggil operasi DeleteDirectory pada bucket untuk pertama kalinya.

Operasi API ini mencakup header permintaan umum seperti Host dan Date. Untuk informasi lebih lanjut tentang header permintaan umum, lihat Header Permintaan Umum.

Header respons

Header respons operasi API ini hanya mencakup header respons umum. Untuk informasi lebih lanjut tentang header respons umum, lihat Header Respons Umum.

Elemen respons

Elemen

Tipe

Deskripsi

DeleteDirectoryResult

Container

Kontainer yang menyimpan objek yang dihapus.

Node induk: tidak ada

DirectoryName

String

Nama direktori yang dihapus.

Node induk: DeleteDirectoryResult

DeleteNumber

String

Jumlah objek dan direktori yang dihapus.

Node induk: DeleteDirectoryResult

NextDeleteToken

String

Nama objek atau direktori setelah operasi penghapusan dimulai.

Node induk: DeleteDirectoryResult

Contoh

  • Gunakan metode hapus non-rekursif untuk menghapus direktori

    Contoh Permintaan

    POST /desktop/osstest/a?x-oss-delete HTTP/1.1
    Host: oss-example.oss-cn-hangzhou.aliyuncs.com
    Date: Thu, 29 Apr 2021 05:21:12 GMT
    Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e

    Contoh Respons Sukses

    HTTP/1.1 200 OK
    x-oss-request-id: 559CC9BDC755F95A64485981
    Date: Thu, 29 Apr 2021 05:21:12 GMT
    Connection: keep-alive
    Server: AliyunOSS
    <DeleteDirectoryResult>
        <DirectoryName>desktop/osstest/a</DirectoryName>
        <DeleteNumber>1</DeleteNumber>
    </DeleteDirectoryResult>
  • Hapus direktori secara rekursif

    Contoh Permintaan

    POST /desktop/osstest/a?x-oss-delete HTTP/1.1
    Host: oss-example.oss-cn-hangzhou.aliyuncs.com
    Date: Thu, 29 Apr 2021 05:21:12 GMT
    Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
    x-oss-delete-recursive: true

    Contoh Respons Sukses

    HTTP/1.1 200 OK
    x-oss-request-id: 559CC9BDC755F95A64485981
    Date: Thu, 29 Apr 2021 05:21:12 GMT
    Connection: keep-alive
    Server: AliyunOSS
    <DeleteDirectoryResult>
        <DirectoryName>desktop/osstest/a</DirectoryName>
        <DeleteNumber>100</DeleteNumber>
        <NextDeleteToken>Cg9kZXNrdG9wL29zcy9hLzk-</NextDeleteToken>
    </DeleteDirectoryResult>

SDK OSS

Anda dapat menggunakan SDK OSS untuk bahasa pemrograman berikut untuk memanggil operasi DeleteDirectory:

Kode kesalahan

Kode kesalahan

Kode status HTTP

Deskripsi

AccessDenied

403

Penyebab yang mungkin:

  • Saat Anda menghapus direktori, Anda tidak memiliki izin untuk mengakses bucket yang ditentukan.

  • Saat Anda menghapus direktori, Anda tidak memiliki izin untuk menghapus direktori.

NoSuchKey

404

Saat Anda menghapus direktori, direktori yang ditentukan tidak ada.

FileAlreadyExists

409

Penyebab yang mungkin:

  • Saat Anda menggunakan metode hapus non-rekursif untuk menghapus direktori, direktori tersebut tidak kosong.

  • Saat Anda menggunakan metode hapus rekursif untuk menghapus direktori, permintaan bersamaan dikirim untuk menulis data ke direktori pada saat yang sama.

InvalidArgument

400

Saat Anda menggunakan metode hapus rekursif untuk menghapus direktori, format nilai x-oss-delete-token tidak valid.