Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache AmazonS3获取不带扩展名的文件_Apache_Amazon S3_Amazon_Multiviews - Fatal编程技术网

Apache 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不会对对象键的任何部分(路径+文件名)赋予特殊含义

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

例如:picture1.png、picture2.jpg。 我想提供没有扩展名的内容,对文件夹/picture1的get请求将返回picture1.png

客户端是angularJs应用程序

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


谢谢,那样不行。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,感谢您给出清晰准确的答案。我确实搜索了更多,最终找到了相同的解决方案。