将文件从 EC2 Web 服务器上传到 S3 存储桶以进行内容传送的默认方式是什么?
答案1
答案取决于目的。例如,如果您的 EC2 实例正在运行 PHP 应用程序,那么使用 PHP-SDK 将是最佳途径。某些应用程序可能会发现将 S3 存储桶挂载为本地文件系统很有用(例如 S3-fuse)。
但是,如果你只是想通过 shell 将文件从 EC2 上传到 S3,我建议Tim Kay 的 aws脚本。这是一个独立的 perl 脚本,无需安装即可运行,也可以安装以设置别名函数。使用此脚本将文件上传到现有存储桶的过程如下:
s3put bucket_name/filename.ext /path/to/local/file/name.ext
它支持 AWS 的大部分功能,并且其错误消息足够详细,使得问题调试相当容易。
答案2
您可以使用 s3cp 工具。它类似于 scp 命令。有关下载和文档,请参阅http://www.beaconhill.com/opensource/s3cp.html和http://aws.amazon.com/code/Java/3124
安装后,您可以例如复制到 S3:s3cp local-file s3://bucket/object[/]
答案3
这是一个简单的例子,说明如何直接上传到 s3
http://sente.cc/upload_to_s3.html
代码:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<h3>refresh the page after you've submitted to see your new image</h3>
<div style="width:300px">
<form action="http://s3.amazonaws.com/dev.sente" method="post" enctype="multipart/form-data">
<fieldset>
<input type="hidden" name="acl" value="public-read" /> <br />
<i>name of key:</i><input type="text" name="key" readonly="true" value="image.jpg" /> <br />
<input name="file" type="file" /> <br />
<input name="submit" value="Upload" type="submit" />
</fieldset>
</form>
</div>
<br>
<a href="http://s3.amazonaws.com/dev.sente/image.jpg">http://s3.amazonaws.com/dev.sente/image.jpg</a>
<br>
<a href="http://s3.amazonaws.com/dev.sente/image.jpg"><img src="http://s3.amazonaws.com/dev.sente/image.jpg"></a>
</a>
</body>
</html>
复制自我对类似问题的回答-这里
答案4
通过 HTTP,与您从任何其他地方上传到 S3 的方式相同。