我在需要能够从 S3 下载一批文件的应用程序中使用 Amazon .NET SDK。其中一些文件可能已存档到 Glacier,在这种情况下,应用程序应为任何此类文件启动 RestoreObjectRequests,而不是从 S3 下载任何文件。以下是一些不起作用的解决方案:
ListObjectsResponse 中的 S3Object 具有 StorageClass 属性,即 S3StorageClass.Glacier 用于 Glacier 启用的文件。但是,即使文件被临时恢复,S3Object 仍继续具有该设置,因此无济于事。
如果有问题的文件处于恢复过程中或被临时恢复,我曾希望 RestoreObjectResponse 会返回一些不同的结果,但它继续返回 0 / OK。
我可以找到确定文件当前是否可用的唯一方法是尝试 GetObjectRequest 并查看它是否失败。我不想使用该解决方案,因为它可能涉及下载大量文件,却发现其中一个在 Glacier 中。
谁能建议另一个选项,让我知道是否所有图像都可用而无需下载它们?谢谢!