4

我正在通过 java Amazon TransferManager 上传多张具有不同扩展名(jpg、png...等)的图片。

例如:图片1.png、图片2.jpg。我想提供没有扩展名的内容,对文件夹/图片1的获取请求将返回图片1.png。

客户端是一个 angularJs 应用程序

以前,我在 EC2 上托管所有这些图片并通过APACHE使用Multiviews选项提供服务,我们可以用 AmazonS3 做类似的事情吗?

谢谢

4

2 回答 2

14

它不是那样工作的。S3 不会对对象键(路径+文件名)的任何部分赋予特殊含义,因此它没有“扩展”的概念。(从技术上讲,S3 也没有真正的“路径”概念,但在大多数情况下它的行为就像它一样)。

当然,在网络上,文件扩展名无论如何都应该没有意义——Content-Type声明应该是唯一重要的事情,所以......从技术上讲......S3中的对象不需要与它们的扩展名一起保存。

将文件保存到没有扩展名的 S3,Content-Type正确设置,您将获得您正在寻找的行为。

于 2016-07-30T18:27:50.200 回答
0

您可以做的是列出 aws s3 文件夹中的所有文件,如下所示

const files = await s3Bucket.listObjects(params).promise()

您可以浏览每个文件并将其与您的文档和您想要执行的操作相匹配。

 files.Contents.forEach(function(obj,index){
                    obj.Key //
                })

您现在可以使用此 obj.Key 来访问您的文件。obj.Key 是带有扩展名的文件的完整路径。您可以搜索此字符串或将其与您的文件匹配,然后获取该文件。

于 2019-07-17T08:05:41.870 回答