如何使用 Spring Cloud AWS 从 S3 中删除文件?

Posted

技术标签:

【中文标题】如何使用 Spring Cloud AWS 从 S3 中删除文件?【英文标题】:How to delete file from S3 using Spring cloud AWS? 【发布时间】:2018-12-20 14:13:10 【问题描述】:

我在 Spring AWS Cloud 中找不到任何 API 或文档来从 S3 存储桶中删除对象。有人可以告诉我怎么做吗?

documentation 只是谈论使用ResourceLoader 阅读内容。

我现在看到的唯一选择是显式注入AmazonS3 并调用deleteObject

【问题讨论】:

【参考方案1】:

Spring 的资源 API 不支持操作的完整生命周期。两个主要接口是ResourceWritableResource。没有用于删除的 API。

作为替代方案,您可以使用Spring Content 代替S3。 Spring Content Stores 都是通用的ResourceLoaders,返回支持删除的Resources。顺便说一句,这完全符合您的建议。

查看参考指南。基本的 Store 接口应该是 Spring Cloud AWS 的直接插入接口。

只需将返回从getResource 转换为DeletableResource 并调用它为delete 以删除S3 中的对象。

如果不清楚,请告诉我,我可以更新更多细节。

【讨论】:

以上是关于如何使用 Spring Cloud AWS 从 S3 中删除文件?的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot、Spring Cloud AWS 和 AWS SQS 未从队列中读取

Spring Boot 无法从 Spring Cloud AWS Core 依赖项启动

从 Spring Cloud Function 访问 AWS Lambda 上下文

如何集成 AWS + ELB + AutoScale + Docker + Spring Cloud

使用 Spring Cloud Vault 在 Spring Boot 应用程序中自动更新 AWS 凭证

无法从 Spring Cloud Stream Kinesis binder 链中的任何提供商加载 AWS 凭证