标签: s3fs

自动为整个S3存储桶设置缓存控制(使用存储桶策略?)

我需要为整个s3存储桶设置缓存控制头,包括现有和未来的文件,并希望在存储桶策略中执行此操作.我知道我可以编辑现有的,我知道如果我自己上传它们如何在put上指定它们但不幸的是上传它们的应用程序无法设置标题,因为它使用s3fs复制那里的文件.

amazon-s3 s3fs

107
推荐指数
6
解决办法
6万
查看次数

s3fs将Amazon S3存储桶挂载为本地目录的稳定性如何

s3fs在Amazon中挂载Amazon S3存储桶作为本地目录的稳定性如何?对于高需求的生产环境,它是推荐/稳定的吗?

有没有更好/类似的解决方案?

更新:使用EBS并通过NFS将其挂载到所有其他AMI会更好吗?

linux amazon-s3 s3fs

67
推荐指数
2
解决办法
7万
查看次数

如何将S3存储桶挂载到EC2实例并使用PHP写入?

我正在开发一个托管在Amazon Web Services上的项目.服务器设置包含两个EC2实例,一个Elastic Load Balancer和一个Web应用程序所在的额外Elastic Block Store.该项目应该使用S3来存储用户上传的文件.为了这个问题,我将调用S3存储桶static.example.com

我已经尝试使用s3fs(https://code.google.com/p/s3fs/wiki/FuseOverAmazon), RioFS(https://github.com/skoobe/riofs)和s3ql(https://code.google.com/p/s3ql /).s3fs将挂载文件系统,但不会让我写入存储桶(我在SO上问了这个问题:如何使用FUSE安装具有适当权限的S3卷).RioFS将挂载文件系统并让我从shell写入存储桶,但使用PHP保存的文件不会出现在存储桶中(我在GitHub上打开了项目问题).s3ql将挂载存储桶,但存储桶中已有的文件都不会出现在文件系统中.

这些是我使用的mount命令:

s3fs static.example.com -ouse_cache=/tmp,allow_other /mnt/static.example.com
riofs -o allow_other http://s3.amazonaws.com static.example.com /mnt/static.example.com
s3ql mount.s3ql s3://static.example.com /mnt/static.example.com
Run Code Online (Sandbox Code Playgroud)

我也试过使用这个S3类:https://github.com/tpyo/amazon-s3-php-class/和这个FuelPHP特定的S3包:https://github.com/tomschlick/fuel-s3.我能够获得FuelPHP包以列出可用的存储桶和文件,但是将文件保存到存储桶失败(但没有错误).

你有没有在本地linux文件系统上安装S3存储桶并使用PHP成功地将文件写入存储桶?你使用了什么工具?如果您使用上述工具之一,您使用的是哪个版本?

编辑 我被告知我RioFS在GitHub上打开的问题已经解决.虽然我决定使用S3 REST API而不是尝试将存储桶作为卷安装,但RioFS这些天似乎可能是一个可行的选择.

php fuse amazon-s3 s3fs

54
推荐指数
1
解决办法
5万
查看次数

带有s3fs和fuse的Amazon S3,传输端点未连接

Redhat with Fuse 2.4.8
S3FS 1.59版

从AWS在线管理控制台,我可以浏览S3存储桶上的文件.
当我登录(ssh)到我的/ s3文件夹时,我无法访问它.
还有命令:"/ usr/bin/s3fs -o allow_other bucket/s3"
return:s3fs:无法访问MOUNTPOINT/s3:传输端点未连接

可能是什么原因?我该如何解决?该文件夹是否需要卸载然后重新安装?

谢谢 !

mount amazon-s3 amazon-web-services s3fs

20
推荐指数
2
解决办法
4万
查看次数

允许其他用户使用S3FS存储桶目录

我在使用S3FS时遇到问题.我正在使用

ubuntu@ip-x-x-x-x:~$ /usr/bin/s3fs --version
Amazon Simple Storage Service File System 1.71
Run Code Online (Sandbox Code Playgroud)

我有装在密码文件/usr/share/myapp/s3fs-password600许可.

我成功安装了S3存储桶.

sudo /usr/bin/s3fs -o allow_other -opasswd_file=/usr/share/myapp/s3fs-password -ouse_cache=/tmp mybucket.example.com /bucket
Run Code Online (Sandbox Code Playgroud)

我已经user_allow_other启用了/etc/fuse.conf

当我尝试在存储桶中创建文件时,root它正常工作.

ubuntu@ip-x-x-x-x:~$ sudo su
root@ip-x-x-x-x:/home/ubuntu# cd /bucket
root@ip-x-x-x-x:/bucket# echo 'Hello World!' > test-`date +%s`.txt
root@ip-x-x-x-x:/bucket# ls
test-1373359118.txt
Run Code Online (Sandbox Code Playgroud)

我检查了存储桶mybucket.example.com的内容,文件已成功创建.

但是我在/bucket以不同的用户身份写入目录时遇到了困难.

root@ip-x-x-x-x:/bucket# exit
ubuntu@ip-x-x-x-x:~$ cd /bucket
ubuntu@ip-x-x-x-x:/bucket$ echo 'Hello World!' > test-`date +%s`.txt
-bash: test-1373359543.txt: Permission denied
Run Code Online (Sandbox Code Playgroud)

我拼命想尝试777一下test-1373359118.txt.我可以写入文件

ubuntu@ip-x-x-x-x:/bucket$ sudo chmod 777 test-1373359118.txt …
Run Code Online (Sandbox Code Playgroud)

s3fs

11
推荐指数
3
解决办法
3万
查看次数

s3fs无法安装在docker容器内吗?

我想在docker容器中挂载s3fs.

我用s3fs制作了docker图像,并且这样做:

host$ docker run -it --rm docker/s3fs bash
[ root@container:~ ]$ s3fs s3bucket /mnt/s3bucket -o allow_other -o allow_other,default_acl=public-read -ouse_cache=/tmp
fuse: failed to open /dev/fuse: Operation not permitted
Run Code Online (Sandbox Code Playgroud)

显示"不允许操作"错误.

所以我用谷歌搜索,并做了这样(再次添加--privileged = true):

host$ docker run -it --rm --privileged=true docker/s3fs bash
[ root@container:~ ]$ s3fs s3bucket /mnt/s3bucket -o allow_other -o allow_other,default_acl=public-read -ouse_cache=/tmp
[ root@container:~ ]$ ls /mnt/s3bucket
ls: cannot access /mnt/s3bucket: Transport endpoint is not connected
[ root@container:~ ]$ fusermount -u /mnt/s3bucket
[ root@container:~ ]$ s3fs s3bucket /mnt/s3bucket -o allow_other -o …
Run Code Online (Sandbox Code Playgroud)

fuse s3fs docker

10
推荐指数
1
解决办法
1万
查看次数

在 AWS ECS 容器上挂载 S3 存储桶作为文件系统

我正在尝试使用 rexray/s3fs 驱动程序将 S3 作为卷安装在 AWS ECS docker 容器上。

我可以在我安装插件的本地机器上执行此操作

$docker plugin install rexray/s3fs
Run Code Online (Sandbox Code Playgroud)

并在 docker 容器上安装了 S3 存储桶。

$docker plugin ls

ID                  NAME                 DESCRIPTION                                   ENABLED

3a0e14cadc17        rexray/s3fs:latest   REX-Ray FUSE Driver for Amazon Simple Storage   true 

$docker run -ti --volume-driver=rexray/s3fs -v s3-bucket:/data img
Run Code Online (Sandbox Code Playgroud)

我正在尝试在 AWS ECS 上复制它。

尝试遵循以下文档:https : //docs.aws.amazon.com/AmazonECS/latest/developerguide/docker-volumes.html

如果我给 Driver 值,那么任务将无法运行并给出“无法放置任务,因为没有容器实例满足其所有要求。” 错误。

我正在使用 t2.medium 实例并为其提供任务要求,因此它不应该是 H/W 要求问题。

如果我从作业定义中删除驱动程序配置,任务将被执行。

看来我错过了配置的东西。

有没有人尝试/尝试过同样的事情,请分享知识。

谢谢!!

plugins mount s3fs docker aws-ecs

10
推荐指数
3
解决办法
2万
查看次数

如何在Kubernetes容器/吊舱上安装S3存储桶?

我正在尝试在Amazon EKS集群上运行我的Spark作业。我的Spark作业在每个数据节点/工作人员/执行者处需要一些静态数据(参考数据),并且该参考数据可在S3上获得。

有人可以帮助我找到一个干净且性能良好的解决方案,以将S3桶安装在吊舱上吗?

S3 API是一个选项,我正在将其用于输入记录和输出结果。但是“参考数据”是静态数据,因此我不想在我的spark作业的每次运行/执行中下载它。在首次运行时,作业将下载数据,而即将进行的作业将检查数据是否在本地可用,而无需再次下载。

fuse amazon-s3 s3fs apache-spark kubernetes

8
推荐指数
2
解决办法
5345
查看次数

SFTP Chroot 用户到挂载的 S3 存储桶

我正在尝试使用 Amazon EC2 服务器作为我的 SFTP 服务器,我可以在其中创建经过身份验证的用户以 sftp 进入我的服务器。我已经使用 s3fs 将 s3 存储桶安装到位于 /mnt/buckets/{username} 位置的服务器上。读取和写入 /mnt/buckets/{username} 目录可以按预期使用 s3。

我的 sshd_config 具有以下内容。

ChrootDirectory /mnt/buckets/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
Run Code Online (Sandbox Code Playgroud)

当 SFTP-ing 我得到以下响应

...
debug1: Authentication succeeded (publickey).
Authenticated to ec2-54-173-113-164.compute-1.amazonaws.com ([54.173.113.164]:22).
debug2: fd 5 setting O_NONBLOCK
debug3: fd 6 is O_NONBLOCK
debug1: channel 0: new [client-session]
debug3: ssh_session2_open: channel_new: 0
debug2: channel 0: send open
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
Write failed: Broken pipe
Connection closed
Run Code Online (Sandbox Code Playgroud)

挂载的存储桶具有这些权限。

/home/ubuntu# ls …
Run Code Online (Sandbox Code Playgroud)

sftp amazon-s3 amazon-ec2 amazon-web-services s3fs

7
推荐指数
1
解决办法
1638
查看次数

s3fs 卸载:目录不为空

我正在使用s3fsosxfuse在我的 Mac 上挂载一个 S3 目录:

s3fs my-bucket-name $PWD/s3
Run Code Online (Sandbox Code Playgroud)

当需要卸载它时,我会这样做:

% s3fs umount $PWD/s3
s3fs: MOUNTPOINT directory /Users/kwilliams/blah/s3 is not empty.
if you are sure this is safe, can use the 'nonempty' mount option.
Run Code Online (Sandbox Code Playgroud)

知道这是安全的-我并非故意在创建任何新文件s3的目录,如果创建了任何新的,我需要知道这件事,所以我可以清理它们或弄清楚发生了什么事。

我也不希望它在尝试卸载时对底层 S3 存储桶执行任何操作(创建、删除)。我不确定该nonempty选项会做什么。

当我这样做时ls,该目录肯定显示为非空,因为它向我显示了存储桶的内容。

最后 - 消息说我可以use the 'nonempty' mount option- 是说我应该在挂载时使用该选项,还是在卸载时可以使用它? s3fs --help并不表示s3fs umount可以采取任何选择。

amazon-s3 umount s3fs

7
推荐指数
2
解决办法
7467
查看次数