Amazon S3 获取没有扩展名的文件
Amazon S3 get file without extension
我正在通过 java Amazon TransferManager 上传多张具有不同扩展名(jpg、png...等)的图片。
例如:picture1.png、picture2.jpg。
我想提供没有扩展名 的内容 ,对 folder/picture1 的获取请求将 return picture1.png。
客户端是一个angularJs应用程序
以前,我在 EC2 上托管所有这些图片并通过 APACHE 和选项 Multiviews 提供服务,有没有类似的东西我们可以用 AmazonS3 做什么?
谢谢
这样不行。 S3 不会对对象键(路径+文件名)的任何部分赋予特殊含义,因此它没有 "extensions." 的概念(从技术上讲,S3 也没有 "paths" 的真正概念,但它表现在大多数情况下就像它一样)。
当然,在网络上,文件扩展名应该没有任何意义——声明的 Content-Type
应该是唯一重要的东西,所以......从技术上讲......不需要对象S3 将与其扩展名一起保存。
不带扩展名将文件保存到 S3,正确设置 Content-Type
,您将获得所需的行为。
您可以像这样列出 aws s3 文件夹中的所有文件
const files = await s3Bucket.listObjects(params).promise()
您可以浏览每个文件并将其与您的文档和您想要执行的操作相匹配。
files.Contents.forEach(function(obj,index){
obj.Key //
})
您现在可以使用此 obj.Key 访问您的文件。 obj.Key 是带扩展名的文件的完整路径。您可以搜索此字符串或将其与您的文件匹配,然后获取文件。
我正在通过 java Amazon TransferManager 上传多张具有不同扩展名(jpg、png...等)的图片。
例如:picture1.png、picture2.jpg。 我想提供没有扩展名 的内容 ,对 folder/picture1 的获取请求将 return picture1.png。
客户端是一个angularJs应用程序
以前,我在 EC2 上托管所有这些图片并通过 APACHE 和选项 Multiviews 提供服务,有没有类似的东西我们可以用 AmazonS3 做什么?
谢谢
这样不行。 S3 不会对对象键(路径+文件名)的任何部分赋予特殊含义,因此它没有 "extensions." 的概念(从技术上讲,S3 也没有 "paths" 的真正概念,但它表现在大多数情况下就像它一样)。
当然,在网络上,文件扩展名应该没有任何意义——声明的 Content-Type
应该是唯一重要的东西,所以......从技术上讲......不需要对象S3 将与其扩展名一起保存。
不带扩展名将文件保存到 S3,正确设置 Content-Type
,您将获得所需的行为。
您可以像这样列出 aws s3 文件夹中的所有文件
const files = await s3Bucket.listObjects(params).promise()
您可以浏览每个文件并将其与您的文档和您想要执行的操作相匹配。
files.Contents.forEach(function(obj,index){
obj.Key //
})
您现在可以使用此 obj.Key 访问您的文件。 obj.Key 是带扩展名的文件的完整路径。您可以搜索此字符串或将其与您的文件匹配,然后获取文件。