AWS S3 GET请求回退到其他虚拟文件夹

时间:2016-07-12 14:14:23

标签: amazon-web-services redirect amazon-s3

有没有人知道是否可以为S3服务器设置规则或某种配置,如果在给定路径上找不到某些资源,它将允许回退到不同的虚拟文件夹?

以下是一个例子:

调用的网址是https://bucket.s3.domain/virtual-folder/1/res.ext。如果在虚拟文件夹res.ext中找不到1,我希望将其重定向到它的父https://bucket.s3.domain/virtual-folder/res.ext。父将包含默认版本的资源。因此,我们的想法是,如果您无法找到特定资源,S3应自动返回默认资源。

我做了一些研究,但我得到的只是关于网站重定向。我需要的是一个原始资源,设备将在一个请求中提取,S3将负责所有事情。

这个东西有可能吗?

谢谢, 赌注。

2 个答案:

答案 0 :(得分:6)

现在有可能新功能是S3!您必须将您的存储桶设置为静态网站(这将要求您更改用于评估文件的URL),然后设置以下重定向规则:

self.sii_xml_request

我想要做的是,如果文件已上传,则从开发人员存储区提供图片,如果没有,则回退到生产文件。 出于这个原因,我必须使用if isinstance(self.sii_xml_request, bool): content_lengthj == int(self.sii_xml_request) # 1 if True else 0 else: content_length = len(self.sii_xml_request) ... response = pool.urlopen('POST', url, headers={ 'Content-Type': 'application/soap+xml', 'charset': 'utf-8', 'Content-Length': content_length}, body=self.sii_xml_request) App\Events_Theatre::has('event')->orhas('managers')->get(); ,如果这不是你需要的,你可以删除它。 至于重定向本身规则捕获403错误(拒绝因为文件丢失。如果你公开了桶你可能需要在这里使用40)然后只是设置一个新的主机(桶URL)指向。

答案 1 :(得分:0)

如果您只想托管 SPA,现在可以在 S3 存储桶上配置错误文档。


配置错误文档

  1. 创建错误文档,例如 404.html

  2. 在本地保存错误文档文件。

    错误文档名称区分大小写,并且必须与您在启用静态网站托管时输入的名称完全匹配。例如,如果您在静态网站托管对话框中为错误文档名称输入 404.html,则您的错误文档文件名称也必须为 404.html

  3. 登录 AWS 管理控制台并通过 https://console.aws.amazon.com/s3/ 打开 Amazon S3 控制台。

  4. 在“存储桶”列表中,选择要用于托管静态网站的存储桶的名称。

  5. 为您的存储桶启用静态网站托管,并输入错误文档的确切名称(例如,404.html)。有关详细信息,请参阅Enabling website hosting

    启用静态网站托管后,继续第 6 步。

  6. 要将错误文档上传到您的存储桶,请执行以下操作之一:

    • 将错误文档文件拖放到控制台存储桶列表中。

    • 选择上传,然后按照提示选择并上传索引文件。

    有关分步说明,请参阅Uploading objects

来源:https://docs.aws.amazon.com/AmazonS3/latest/userguide/CustomErrorDocSupport.html#custom-error-document