【问题标题】:Image Resizer: Not accessing private S3 bucket correctlyImage Resizer:未正确访问私有 S3 存储桶
【发布时间】:2015-07-28 10:04:05
【问题描述】:

我们一直在使用当前版本的 Image Resizer (http://imageresizing.net/) 为我们的 Web 应用创建概念验证图像调整器。 prod 版本将由 CloudFront 和弹性负载均衡器前置。 根据文档,这个想法是让 Image Resizer 服务器运行并访问一个或多个用于媒体 (JPG) 的 S3 存储桶,并使用磁盘缓存来加速该过程。

强制要求 S3 存储桶保持私有,因此我们设置了一个 IAM 账户 - 此账户对这些存储桶具有完全访问权限 - 这已通过 AWS 策略模拟器验证。

使用我当前的 IR 配置,该解决方案仅在我公开图像时才有效。好像 IAM 凭证被忽略了。

我的调整器配置如下,更改了 IAM 访问密钥和密钥。

<resizer>
    <pipeline fakeExtensions=".ashx" />
    <plugins>
        <add name="DiskCache" />
        <add name="S3Reader2" region="ap-southeast-2" prefix="~/s3" vpp="true" cacheMetadata="true"
            buckets="images-vendorA, images-vendorB"
            accessKeyId="AAABBBCCC" 
            secretAccessKey="123456798" />

    </plugins>
    <diagnostics enableFor="allhosts" />    
</resizer>

我承认我们没有这方面的许可证,但我们处于开发阶段而不是生产阶段 - 我还没有看到任何仅使用许可证密钥启用的文档。

是否有其他人在让 Image Resizer 访问私有 S3 内容时遇到任何问题,如果是,您是如何解决这个问题的?

我们不能公开图像桶,因为这会违反我们对数据提供商的合同义务。

【问题讨论】:

    标签: image amazon-s3 imageresizer


    【解决方案1】:

    好的。与往常一样,您在 stackoverflow 上发帖,然后解决方案就会出现!

    我的假设是,由于 Windows 错误日志,imageresiser 在访问文件时遇到问题 - 因此是权限/IAM 问题。

    事实并非如此。对元数据的仔细检查发现了罪魁祸首。 有些人在公开场合工作的事实有点误报——有些人以这种方式工作,而另一些人则不然,这只是一个不幸的休息。

    我会解释 - 我们使用 2 种方法将我们的测试图像上传到 S3。一种方法是使用 Web 控制台,另一种方法是使用第三方产品 CloudBerry S3 explorer Pro。由于我们在 Cloud Berry 中的设置,它会在此过程中上传我们的文件并对其进行 gzip 压缩,并添加 Content-Encoding: gzip Meta Data。

    这是泄露一切的关键线索。可以说,通过 AWS 控制台上传的内容是纯正的。 Image Resizer 无法读取压缩后的文件。

    那里的教训 - 使用 3rd 方产品时注意您的元数据和编码设置。

    我没有删除存储桶中的所有文件,删除所有公共权限并通过 AWS 控制台上传它们,一切正常!

    我希望这些信息在未来对其他人有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-25
      • 2017-03-19
      • 2018-01-14
      • 2020-02-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多