我想做什么?
步骤 1:将 S3 存储桶挂载到 EC2 实例。
步骤 2:在 EC2 实例上安装 FTP 服务器,并通过隧道将 ftp 请求传送到存储桶中的文件。
到目前为止,我做了什么?
- 创建存储桶
- 创建具有开放输入端口的安全组 (FTP:20,21 - SSH:22 - 更多)
- 连接到 EC2
和以下代码:
wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/s3fs/s3fs-1.74.tar.gz
tar -xvzf s3fs-1.74.tar.gz
yum update all
yum install gcc libstdc++-devel gcc-c++ fuse fuse-devel curl-devel libxml2-devel openssl-devel mailcap
cd s3fs-1.74
./configure --prefix=/usr
make
make install
vi /etc/passwd-s3fs # set access:secret keys
chmod 640 /etc/passwd-s3fs
mkdir /s3bucket
cd /s3bucket
和 cd anwers: Transport endpoint is not connected
邓诺怎么了。也许我使用了错误的用户?但目前我只有一个用户(出于测试原因),除了 root。
下一步将是 ftp 隧道,但现在我想让它工作。
按照这些说明进行操作。 https://github.com/s3fs-fuse/s3fs-fuse
我想他们也在后台调用 API,但它按照我的意愿工作。
将 S3 挂载到 EC2 实例的一种可能的解决方案是使用新的文件网关。
看看这个:https://aws.amazon.com/about-aws/whats-new/2017/02/aws-storage-gateway-supports-running-file-gateway-in-ec2-and-adds-file-share-security-options/
http://docs.aws.amazon.com/storagegateway/latest/userguide/WhatIsStorageGateway.html
1 点
虽然另一位回答者说 S3 不是为此而构建的是正确的,但说无法挂载存储桶是不正确的(但是我会认真考虑找到更好的方法来解决您的问题)。
话虽如此,您可以使用 s3fuse 在 EC2 中挂载 S3 存储桶。有很多很好的理由不这样做,详见这里。
要点 2
从那里开始,这只是设置标准FTP服务器的情况,因为存储桶现在在您的系统中看起来就像是任何其他文件系统(大多数情况下)。
vsftpd
可能是不错的选择。我会尝试两者,然后发布单独的问题,其中包含您遇到的任何具体问题,但这应该为您提供一个粗略的大纲。(好吧,实际上我两者都不会尝试,而是通过使用 API 的应用程序代码使用 S3,但仍然如此)。