Questions tagged «amazon-s3»

这是有关亚马逊云存储服务的问题。

3
Amazon S3未发送Content-Type标头
我有一个可以从各种来源下载内容的应用程序。它依赖于在图像上设置的“ Content-Type”标头。大多数Web服务器都能正确执行此操作,但是Amazon S3服务器似乎未设置Content-Type。 我假设Amazon服务器配置正确,那么可能是什么问题?这些图像上传不正确吗?还是我不应该依赖于设置的内容类型? 例 谢谢


3
带有S3重定向的Amazon Cloudfront
我正在尝试做一些相对简单的事情-我想设置一些域和子域以重定向到我们网站的核心域,但是我想将重定向放在Cloudfront上。除重定向根路径外,其他所有操作均有效-这使我得到了一个XML文件,其中部分描述了S3存储桶。 背景 S3 S3允许您设置全重定向存储桶,例如: 通过测试,Web终结点(brass9-com.s3-website-us-west-1.amazonaws.com)会执行应做的工作-将其重定向到brass9.com。好。 云前 Cloudfront允许您指向S3存储桶,但是它建议您这样做的方式是错误的- 您需要使用上面的Web端点,而不是像Brass9-com.s3.amazonaws.com这样指向存储桶。除此之外,您可以将所有内容保留为默认值,并获得良好的重定向行为。因此,像www.brass9.com/portfolio这样的路径会正确地重定向到它应该在的位置。也不错。 问题-根域重定向 然后无法正常工作的一件事是从纯www.brass9.com重定向。与其让您获得重定向,不如让您得到这个奇怪的结果: <?xml version="1.0" encoding="UTF-8"?> <ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Name>brass9-com</Name><Prefix></Prefix> <Marker></Marker><MaxKeys>1000</MaxKeys><IsTruncated>false</IsTruncated> </ListBucketResult> 好... 。因此,这并不是完全意外的 -因为没有默认根对象。但是,为防止这种行为,我可能会指定哪个默认根对象?我需要指向的S3重定向对象的名称是什么?还是有其他适当的配置,或者这仅仅是Amazon需要修复的Cloudfront和S3交互方式中的错误? 已知的不起作用的解决方案:默认根对象 可以指定index.html的默认根对象,但是它没有任何帮助-只是改变了问题。相反,Cloudfront URL重定向到主站点上的/index.html,该站点是404(我们不使用index.html文件,它是服务器端框架驱动的站点)。我可以在服务器上放一个index.html,但这首先使使用Cloudfront的速度提高不大。 类似问题 一个问题提出了类似的要求,但由于某种原因而不是我所看到的XML响应,返回了一个空白的0字节响应。它不包含有关该问题或解决方案的问题。 相关文章 一篇文章建议您仅在裸域和www域上为整个网站提供服务。这与任何用户的书签,您的搜索排名等有关。您不应该这样做。 一些人讨论了在S3和Cloudfront上托管静态网站而不是重定向方案,因此没有关系。 那么,如何正确执行此操作? Cloudfront配置的屏幕快照-无默认根对象,指向S3起源。忽略进行中-我刚刚打开和关闭默认根对象进行测试。 以及该发行版的Origin配置:

1
AWS CLI第二次运行时抛出“无法找到凭证”
我正在尝试使用用户数据脚本在启动时使用AWS CLI(1.8.7)将一些文件从S3下载到EC2实例。该实例具有一个具有适当权限的IAM角色和实例配置文件。有时,CLI将失败,并显示错误“无法找到凭据”。它经常发生(并非每次都发生),但总是在单独的S3命令生效后发生。这是脚本的输出: ++ date +%r 03:24:10 AM ++ aws s3 cp s3://non-public-bucket-1/15mb-zip-file.zip ./15mb-zip-file.zip Completed 1 of 1 part(s) with 1 file(s) remaining^Mdownload: s3://non-public-bucket-1/15mb-zip-file.zip to 15mb-zip-file.zip ++ date +%r 03:24:14 AM ++ unzip 15mb-zip-file.zip # Snip ++ date +%r 03:26:01 AM ++ curl http://169.254.169.254/latest/meta-data/instance-id % Total % Received % Xferd Average …

3
NTPD意外死亡的可能原因和解决方案
在使用s3进行物理文档存储的Web应用程序上,我们遇到了NTP不断消失的问题。这似乎每天大约发生一两次。发生这种情况时,几乎没有提供任何信息,除了存在PID文件,但是当我检查状态时服务已死。 谁能暗示NTPD死亡的可能原因?我假设时钟漂移可能导致它死亡,但是我不确定是什么原因导致的。有足够的内存和可用磁盘空间。 服务最后一次终止,这是输出: Sep 6 06:15:25 vm02 rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="988" x-info="http://www.rsyslog.com"] rsyslogd was HUPed Sep 6 06:17:06 vm02 ntpd[10803]: 0.0.0.0 0618 08 no_sys_peer Sep 6 08:01:10 vm02 ntpd[10803]: 0.0.0.0 0617 07 panic_stop -28101 s; set clock manually within 1000 s.

2
EC2-共享存储-S3FS还是EBS?
现在将我的Web服务构建到EC2上,并且在负载均衡器后面有一个实例。我当然会照顾多个实例。 我最初的想法是运行所有实例,使其成为哑奴,并使用S3作为本地存储。为此,我已经开始使用S3FS,但据我所知,它尚未真正准备好在Web服务环境中用于生产。日志的写入似乎很晚,即使不是永远也不会。奇数个缓存,甚至没有缓存标志等,也存在许多问题。 但是,替代方案看起来很少。一个显然是EBS卷,可以将其附加到单个实例。共享此内容的一些解决方案:- SMB与其他实例共享。拥有一个主服务器和其余从属服务器-obv是否需要在这里内置多个EBS卷的冗余? Rsync共享到其他盒子。考虑到它不是持久性的,并且会定期更新,这似乎很痛苦。如果发生重大更改,如果有强制脚本更新的话,可能是可以的。 问题是……人们会做什么?这似乎是一个完全普通的用例,但是在论坛上甚至在SF上都可以找到各种各样的答案,这似乎表明答案不明确……需要帮助!


1
通过.ebextensions访问Elastic Beanstalk S3
我的文件.ebextensions夹中有一个简单的文件: 00-myconfig.config Resources: AWSEBAutoScalingGroup: Metadata: AWS::CloudFormation::Authentication: S3Access: type: S3 roleName: aws-elasticbeanstalk-ec2-role buckets: my-bucket files: "/tmp/ca-bundle.zip": mode: "000755" owner: root group: root source: https://s3-ap-southeast-2.amazonaws.com/my-bucket/ca/ca-bundle.zip authentication: S3Access 根据多个答案,哪个是授予S3存储桶对该aws-elasticbeanstalk-ec2-role角色访问权限的方法。 但是我继续收到403错误 /var/log/eb-activity.log [2015-08-26T01:27:03.544Z] INFO [22320] - [Application update/AppDeployStage0/EbExtensionPreBuild/Infra-EmbeddedPreBuild] : Activity execution failed, because: Failed to retrieve https://s3-ap-southeast-2.amazonaws.com/my-bucket/ca/ca-bundle.zip: HTTP Error 403 : <?xml version="1.0" encoding="UTF-8"?> …

7
镜像Amazon S3存储桶的实用方法是什么?
我想镜像我的Amazon S3存储桶。我之所以要这样做,是因为1)我不希望我的所有数据仅存在于一个提供程序中;和2)如果发生软件错误或安全漏洞,我想备份数据。 我可以使用s3cmd同步功能镜像到本地磁盘,但这不能扩展到非常大的存储桶,并且对于快速备份还原没有用。我宁愿将数据镜像到Rackspace Cloud Files这样的竞争对手。 对于在Linux机器上以自动化方式促进这种镜像的简单而强大的方法,有人有何建议?

4
如何设置由S3(或类似版本)支持的SFTP服务器
我需要设置一个本质上具有很大容量的SFTP服务器。我需要向我们的合作伙伴之一提供SFTP登录详细信息到服务器,他们将在其中上传数百万个文件,总计数百TB。然后,我将有选择性,很少读取这些文件。这是唯一的实际要求,任何技术选择都可以争夺。 最简单的方法是让某种EC2实例运行SFTP服务器,以便将上传的任何内容直接发送到S3,或者某种过程在上传时发现新文件,然后将其复制到S3,并将其从磁盘中删除。 这是最好的方法吗?是否有其他方法可以使服务器实质上具有“无限且神奇地增长的磁盘空间”? 谢谢你的帮助!丹尼尔


2
我正在尝试在EC2实例上使用“ aws s3 sync”。'--exclude'选项是否损坏?
我正在尝试使用预装在EC2实例上的Amazon官方工具将EC2实例备份到S3。我很难获得sync命令以从同步中排除目录。该文件使得它像它的使用“ -排除”选项易声。但是,我一直无法正常工作。 我正在运行yum提供的最新版本: [root@HOSTNAME ~]# aws --version aws-cli/1.1.1 Python/2.6.8 Linux/3.4.57-48.42.amzn1.x86_64 这是我遇到的命令: aws s3 sync /var/www s3://backup-bucket/var/www/ --exclude '*.git/*' 我想从同步中排除所有名为“ .git”的文件夹以及这些文件夹中的所有文件。 从文档来看,我给“-排除”的模式应该可以工作。但是,整个.git目录及其所有文件仍被同步。这是输出的示例行: upload: ../var/www/site/.git/objects/7b/e3cdf203d34a0d7eff30a96a78d20eacee8d77 to s3://backup-bucket/var/www/site/.git/objects/7b/e3cdf203d34a0d7eff30a96a78d20eacee8d77 我尝试了以下命令,但所有命令都未能排除名为“ .git”的文件夹: aws s3 sync /var/www s3://backup-bucket/var/www/ --exclude *.git/* aws s3 sync /var/www s3://backup-bucket/var/www/ --exclude */.git/* aws s3 sync /var/www s3://backup-bucket/var/www/ --exclude '.git' aws s3 …

3
安全地为多个客户端存储和提供文件
我们正在开发一个网络应用程序,其中(除其他功能外)我们的用户可以上传他们的文件。但是,由于存储空间有限,我们无法将这些文件存储在VPS上,因此我们决定使用S3。 主要问题是我们必须确保用户只能访问自己的数据。因此,我们将文件列表保存在数据库中,并将有权访问这些文件的用户列表保留在数据库中。我们的服务器可以轻松决定用户是否有权访问文件。但是如何实际将文件提供给用户呢? 我已经考虑过一些可能性,但是似乎没有一个是最好的。 1.使用PHP生成(过期)签名的URL 这是一种非常简单的方法,它也很快,但是会导致非常丑陋且冗长的网址。 这是这样做的方法。 2.混淆的网址 这意味着,我们将文件公开供S3读取,但是所有文件都存储在难以猜测的命名文件夹中,例如:24fa0b8ef0ebb6e99c64be8092d3ede20000。但是,也许这不是最安全的方法。即使您永远无法猜测文件夹名称,在知道它之后(因为您实际上可以访问它),也可以与任何人(与任何未经授权的人)共享该链接。 3.通过我们的服务器下载文件 这意味着文件不是由S3直接提供的,而是首先由我们的服务器安全地读取并提供。我们真的不想要这个:) 4.检查引荐来源 该混淆后的URL的解决方案可以用“确保”的要求来自于我们的服务器(你可以设置S3检查引荐)得到改善。但是,这将是一个非常不可靠的解决方案,因为并非所有浏览器都会发送引荐来源网址数据,而且该数据也可能是伪造的。 为不同客户端安全地从Amazon S3提供文件的一种好方法是什么?
8 amazon-s3 

3
将S3存储桶直接安装到EC2实例中是否安全?
就像我的问题的标题所说,我想知道这是否是一种好习惯, 我知道我可以在EC2实例中挂载它,但是我想知道是否(因为我将添加更多实例来扩展我的应用程序)这是否会引起一些问题?你对此有一些经验吗? 我正在使用S3允许通过PHP脚本上传文件,所以基本上的问题是: 使用Mouting是一种好习惯还是有更好的方法来处理用户文件上传? 提前致谢

3
采取MySQL转储,对其进行加密然后推送至s3的最佳实践是什么?
当前项目要求将数据库转储,加密并推送到s3。我想知道这样的任务可能是一些“最佳实践”。到目前为止,我正在使用一种非常简单的方法,但是希望在安全性方面有一些更好的想法。这是我的脚本的开始: mysqldump -u root --password="lepass" --all-databases --single-transaction > db.backup.sql tar -c db.backup.sql | openssl des3 -salt --passphrase foopass > db.backup.tarfile s3put backup/db.backup.tarfile db.backup.tarfile # Let's pull it down again and untar it for kicks s3get surgeryflow-backup/db/db.backup.tarfile db.backup.tarfile cat db.backup.tarfile | openssl des3 -d -salt --passphrase foopass |tar -xvj 显然,问题在于,此脚本可以使攻击者发泄地狱的一切。 对于此任务的任何想法,批评和建议将不胜感激。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.