我正在尝试将Nginx设置为S3上托pipe的静态html / js webapp的代理。 我阅读了大量的教程和post,如果我的存储桶被设置为公开,我可以使其工作。 我需要Nginx作为代理的原因是我不希望我的存储桶公开。 遵循本指南,我添加了这个 GitHub仓库中的set-misc-nginx-module。 额外的模块通过提供AWS密钥和AWS秘密,为桶的每个对象构build经过validation的S3请求。 我重新编译了Nginx,并设法允许它访问受保护的存储桶。 问题是,我无法呈现HTML,基本上我正在与我试图代理桶的XML内容。 这是Nginx的configuration文件 server { listen 80; server_name [MY_DNS]; location * { set $bucket '[MY_BUCKET]'; set $aws_access '[MY_AWS_KEY]'; set $aws_secret '[MY_AWS_SECRET]'; set $url_full "$1"; set_by_lua $now "return ngx.cookie_time(ngx.time())"; set $string_to_sign "$request_method\n\n\n\nx-amz-date:${now}\n/$bucket/$url_full"; set_hmac_sha1 $aws_signature $aws_secret $string_to_sign; set_encode_base64 $aws_signature $aws_signature; resolver 172.31.0.2 valid=300s; resolver_timeout 10s; proxy_http_version 1.1; proxy_set_header […]
我使用awscli工具来validation我的桶的大小。 首先S3调用(所有文件没有版本,只是一个普通的上传): $ aws s3 ls s3://XXX –recursive –human-readable –summarize (…) Total Objects: 2 Total Size: 82.5 GiB 然后我使用了CloudWatch指标: $ aws cloudwatch get-metric-statistics –namespace "AWS/S3" –start-time 2015-08-29 –end-time 2015-08-31 –metric-name BucketSizeBytes –period 3600 –statistics Average –unit Bytes –dimensions Name=BucketName,Value=XXX Name=StorageType,Value=StandardStorage { "Datapoints": [ { "Timestamp": "2015-08-30T00:00:00Z", "Average": 141012339184.0, "Unit": "Bytes" }, (…) 现在我想知道为什么CloudWatch显示比S3调用更高的数字。 我无法从文档中find任何提示,因此,如果有人能提供帮助,我将不胜感激。 (pipe理控制台中显示的数字相同; […]
我正在将数据从一个S3帐户(记帐给我)迁移到另一个S3帐户(记入我的公司)。 我如何以最简单,最快速和最具成本效益的方式复制数据? 有一些工具可以做到这一点(比如S3浏览器),但是它们似乎都是Windows(对我来说并不好),而且我并不想购买一个软件来做一次性的复制操作。 谢谢!
我想将EC2卷附加到多个EC2实例,并为我的所有脚本创build一个通用目录。 我无法做到这一点。 是否有可能在我的所有EC2实例之间安装一些共享存储以保持像脚本这样的公共文件? 我可以使用S3吗?
我们在S3上有一大堆照片。 我们每天都会添加和删除,但目前有数百万张照片,如果可能,我们不想重写或更新。 我们还没有在这些现有照片上设置过期标题。 我只是把云端旋转,指向我们的桶。 我现在有两个目标: 使用版本控制让较旧的照片从Cloudfront过期。 设置Far Future Expire标头(S3,CloudFront)来通知浏览器他们应该永远保留这些文件。 这引出了一些问题。 我可以用一个设置完成上述两个目标吗? 我可以在桶级别,单个照片级别或在云端级别设置此设置吗? 最好能够在云端或S3存储级别设置任何caching和将来的过期标题设置,而不必担心在单个照片级别上进行这些设置,尤其是考虑到我们拥有数百万张没有这些设置的照片已经在s3中设置。 thinks任何帮助,非常感谢!
我正在构build的架构中有一个video处理部分。 基本上,有些人可以上传video(存储在S3中),这些video将被拆分成高分辨率的帧。 从这些高分辨率帧中,生成派生图像(缩略图,精灵),所有这些都将被存储在S3上。 我的问题是:在哪里以及如何运行我的video处理脚本? 我想使用Lambda,但我不确定它的限制( 300s超时和512 MB磁盘存储 )允许我这样做。 请注意,video可以重达几GB。 我现在想的解决scheme是: 使用stream从S3读取video(所以不必完全复制) 将video转换为帧,并直接上传到S3(我也必须确保不要用帧填充存储) 单独读取或者从S3读取帧,并使用它们生成缩略图和精灵,并将其上传到S3。 即使我的Lambda与S3存储区位于同一区域,我也有点担心这可能会花费时间。 你认为这是最好的解决scheme吗? 你能想到一个更简单的吗? 或者你认为在一个标准的EC2实例上运行这个处理是一个更好的主意(也许在一些排队系统中,如SQS)? 谢谢!
在基于以下手册实施解决scheme后 – https://www.driftar.ch/2017/06/13/veeam-using-starwind-vtl-with-aws-s3-in-veeam/并成功configuration解决scheme,但是我遇到的主要困难是将磁带上传到磁带上,这似乎不起作用。 我哪里可以出错?
我有一个web应用程序托pipe在亚马逊S3中,web应用程序使用jQuery Mobile构build,我使用changePage在页面之间导航,当我改变页面时,我没有使用哈希运算符(#)。 当用户复制url并将其粘贴到新标签页时,我遇到了问题 例如: http://www.exampleurl.com/page1.html 加载只有jquery页面结构在amazon s3页面page1.html … 我想要的行为是加载index.html并用js读取url,检测页面并加载正确的页面。 与Apache我解决这个URL重写…但对于亚马逊S3我没有find任何类似的… 注:我知道,如果我激活哈希运算符(#)在我的url问题已解决,但我需要没有#清洁url。
我正在和Imgur的创build者一起阅读一个问答,他详细地解释了Imgur运行的服务器基础设施。 以下是他不得不说的一句话: 大多数群集使用c1.xlarge实例。 上传集群处理所有上传和image processing请求,如缩略图和resize,每个实例是一个巨大的集群实例cc1.4xlarge。 我了解图像不占用太多的空间,但为什么即使走这条路? 特别是考虑到显着的成本差异。 如果你想阅读整个问答,你可以在这里查看 。 我发现它很有趣。
我正在S3和CloudFront上主持一个Jekyll博客。 在S3上设置默认文档可以正常工作,所有子文件夹本身都会转到index.html。 在我的CloudFront发行版中,我已经将Default Root Object设置为index.html,但是子目录不会得到这个 – 相反,我得到以下错误 <Error> <Code>NoSuchKey</Code> <Message>The specified key does not exist.</Message> <Key>about</Key> <RequestId>F8324894C093EB53</RequestId> <HostId> Girhbo7YLEl9sxPS3KjvhbkpL32qNsYgiVLElAhPOvqrekfqfpJ/2AAYRg4rNJ+t4Imc86cjiw4= </HostId> </Error> 如果我手动浏览到域/ subdir / index.html它工作正常。 有任何想法吗?