跳到主要內容

DeleteObjectCommand

DeleteObjectCommand 用於從您的 DID Space 中永久刪除一個物件。此操作不可逆。

此命令是移除單一檔案的標準方法。若要刪除多個物件,您必須為每個物件發出一個單獨的 DeleteObjectCommand。

輸入

此命令需要您希望刪除的物件的 key。

  • key string (required) — 物件在空間內的唯一識別碼。這通常是物件的路徑,例如 path/to/your/file.txt。

輸出

輸出透過 HTTP 狀態碼指示操作是否成功。成功的刪除將返回 200 狀態碼。

  • statusCode number — 回應的 HTTP 狀態碼。值為 200 表示成功。
  • statusMessage string — 對應於狀態碼的 HTTP 狀態訊息。
  • data void — 對於成功的 DeleteObjectCommand 操作,此欄位為 undefined。

使用範例

以下範例示範如何初始化 SpaceClient 並使用 DeleteObjectCommand 從您的空間根目錄中刪除一個名為 notes.txt 的檔案。

delete-file.ts

typescript
import { SpaceClient, DeleteObjectCommand } from '@blocklet/did-space-js';
import getWallet from '@blocklet/sdk/lib/wallet';

async function deleteFile() {
  // 初始化 SpaceClient
  const client = new SpaceClient({
    auth: {
      endpoint: 'https://www.didspaces.com/app/api/space/...', // 您的空間端點
      wallet: getWallet(),
    },
  });

  // 指定要刪除的物件的 key
  const fileKey = 'notes.txt';

  // 建立並發送刪除命令
  const command = new DeleteObjectCommand({ key: fileKey });
  const output = await client.send(command);

  // 驗證結果
  if (output.statusCode === 200) {
    console.log(`Successfully deleted object: ${fileKey}`);
  } else {
    console.error(`Failed to delete object. Status: ${output.statusCode} - ${output.statusMessage}`);
  }
}

deleteFile();

在此範例中,我們首先使用必要的驗證詳細資訊建立一個 SpaceClient 的實例。然後,我們實例化 DeleteObjectCommand,提供要移除物件的 key。發送命令後,我們檢查回應的 statusCode 以確認刪除是否成功。

最佳實踐與常見模式

確認刪除

由於刪除物件是永久性操作,確保您的應用程式邏輯正確識別要刪除的物件至關重要。在執行此命令之前,請考慮在面向使用者的應用程式中實作一個確認步驟。

處理「未找到」錯誤

嘗試刪除一個不存在的物件將導致錯誤(通常是 404 Not Found 狀態)。您的應用程式應優雅地處理這種情況。如果物件是否存在不確定,您可能希望在嘗試刪除它之前,使用 ListObjectsCommand 檢查物件是否存在。這有助於防止不必要的 API 呼叫和錯誤。