使用适用于 Java 的 AWS SDK 在 Amazon Glacier 中删除档案 - Amazon Glacier

此页面仅适用于使用文件库和 2012 年原始 REST API 的 Amazon Glacier 服务的现有客户。

如果您正在寻找归档存储解决方案,建议使用 Amazon S3 中的 Amazon Glacier 存储类别 S3 Glacier Instant Retrieval、S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive。要了解有关这些存储选项的更多信息,请参阅 Amazon Glacier 存储类别

从 2025 年 12 月 15 日起,Amazon Glacier(最初基于独立文件库的服务)将不再接受新客户,对现有客户不存在任何影响。Amazon Glacier 是一项独立服务,拥有自己的 API,可将数据存储在文件库中,与 Amazon S3 和 Amazon S3 Glacier 存储类别不同。在 Amazon Glacier 中,您现有的数据将确保安全,并且可以无限期地访问。无需进行迁移。对于低成本、长期的存档存储,AWS 建议使用 Amazon S3 Glacier 存储类别,该类别可通过基于 S3 存储桶的 API、完全的 AWS 区域可用性、更低的成本和 AWS 服务集成,提供卓越的客户体验。如果您希望加强功能,可以考虑使用我们的 AWS 将数据从 Amazon Glacier 文件库传输到 Amazon S3 Glacier 存储类别的解决方案指南,迁移到 Amazon S3 Glacier 存储类别。

使用适用于 Java 的 AWS SDK 在 Amazon Glacier 中删除档案

以下是使用适用于 Java 的 AWS SDK 低级 API 删除档案的步骤。

  1. 创建 AmazonGlacierClient 类(客户端)的实例。

    您需要指定存储您要删除的档案的 AWS 区域。您使用此客户端执行的所有操作都会应用到该 AWS 区域。

  2. 通过创建一个 DeleteArchiveRequest 类的实例提供请求信息。

    您需要提供档案 ID、文件库名称和您的账户 ID。如果您不提供账户 ID,则系统会使用与您提供来对请求签名的证书相关联的账户 ID。有关更多信息,请参阅将适用于 Java 的 AWS SDK 与 Amazon Glacier 结合使用

  3. 以参数形式提供请求对象,运行 deleteArchive 方法。

以下 Java 代码段说明了前面的步骤。

AmazonGlacierClient client; DeleteArchiveRequest request = new DeleteArchiveRequest() .withVaultName("*** provide a vault name ***") .withArchiveId("*** provide an archive ID ***"); client.deleteArchive(request);

注意

有关底层 REST API 的信息,请参阅删除档案(DELETE archive)

示例:使用适用于 Java 的 AWS SDK 删除存档

以下 Java 代码示例使用适用于 Java 的 AWS SDK 删除档案。有关如何运行以下示例的分步说明,请参阅使用 Eclipse 运行 Amazon Glacier 的 Java 示例。您需要更新文件库名称和待删除档案 ID 旁显示的代码。

import java.io.IOException; import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.services.glacier.AmazonGlacierClient; import com.amazonaws.services.glacier.model.DeleteArchiveRequest; public class ArchiveDelete { public static String vaultName = "*** provide vault name ****"; public static String archiveId = "*** provide archive ID***"; public static AmazonGlacierClient client; public static void main(String[] args) throws IOException { ProfileCredentialsProvider credentials = new ProfileCredentialsProvider(); client = new AmazonGlacierClient(credentials); client.setEndpoint("https://glacier.us-east-1.amazonaws.com/"); try { // Delete the archive. client.deleteArchive(new DeleteArchiveRequest() .withVaultName(vaultName) .withArchiveId(archiveId)); System.out.println("Deleted archive successfully."); } catch (Exception e) { System.err.println("Archive not deleted."); System.err.println(e); } } }