跳到主要内容

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 调用和错误。