Apache AmazonS3获取不带扩展名的文件
我正在通过JavaAmazonTransferManager上传多张具有不同扩展名(jpg、png等)的图片 例如:picture1.png、picture2.jpg。 我想提供没有扩展名的内容,对文件夹/picture1的get请求将返回picture1.png 客户端是angularJs应用程序 以前,我在EC2上托管了所有这些图片,并通过APACHE提供了选项MultiView,我们可以用AmazonS3做类似的事情吗Apache AmazonS3获取不带扩展名的文件,apache,amazon-s3,amazon,multiviews,Apache,Amazon S3,Amazon,Multiviews,我正在通过JavaAmazonTransferManager上传多张具有不同扩展名(jpg、png等)的图片 例如:picture1.png、picture2.jpg。 我想提供没有扩展名的内容,对文件夹/picture1的get请求将返回picture1.png 客户端是angularJs应用程序 以前,我在EC2上托管了所有这些图片,并通过APACHE提供了选项MultiView,我们可以用AmazonS3做类似的事情吗 谢谢,那样不行。S3不会对对象键的任何部分(路径+文件名)赋予特殊含义
谢谢,那样不行。S3不会对对象键的任何部分(路径+文件名)赋予特殊含义,因此它没有“扩展”的概念。(从技术上讲,S3也没有真正的“路径”概念,但在大多数情况下,它的行为与之类似) 当然,在web上,文件扩展名无论如何都应该没有意义——声明的
内容类型应该是唯一重要的,所以。。。从技术上讲S3中的对象不需要与其扩展一起保存
将文件保存到不带扩展名的S3,正确设置内容类型,您将获得所需的行为。您可以这样列出aws S3文件夹中的所有文件
const files = await s3Bucket.listObjects(params).promise()
您可以浏览每个文件,并将其与您的文档以及您要执行的操作相匹配
files.Contents.forEach(function(obj,index){
obj.Key //
})
您现在可以使用这个obj.Key访问您的文件。Key是具有扩展名的文件的完整路径。您可以搜索此字符串或将其与您的文件匹配,然后获取文件。Michael,感谢您给出清晰准确的答案。我确实搜索了更多,最终找到了相同的解决方案。