Using S3FS and FUSE to mount a S3 bucket to an AWS EC2 instance, I encountered a problem whereby my S3 files are being updated, but the new files doesn't adopt the proper permission.
The ACL rights that the new files had were "---------" instead of "rw-r--r--". I've ensured that the bucket is mounted properly by:
sudo /usr/bin/s3fs -o allow_other -o default_acl="public-read" [bucketname] [mountpoint]
and creating an automount in /etc/fstab:
s3fs#[bucketname] [mountpoint] fuse defaults,noatime,allow_other,uid=1000,gid=1000,use_cache=/tmp,default_acl=public-read 0 0
and password file in /etc/passwd-s3fs with the right permissions.
My setup is Ubuntu 13.04, PHP5, AWS SDK.
After 2 days of experimenting, I've found a solution (for php) in the provided answer below.
s3fs#[bucketname] [mountpoint] fuse defaults,noatime,allow_other,uid=222,gid=48,use_cache=/tmp,default_acl=public-read 0 0
For me this line work wihtout setting x-amz-meta-mode! take care of : uid=222 is for my server ec2-user and gid=48 is for my server apache group.
All the script php is executed with apache group. That's why i think you need to put the gid to 48.
see also Change user ownership of s3fs mounted buckets
In my php script that PUT files to S3 using AWK SDK for PHP, I had to add in the meta data, as shown below, which did the trick:
The mode "33188" defined the permissions "rw-r--r--" instead of "---------" in S3 bucket (but reflected only in the EC2 mounted folder), which was later inherited by the EC2 mounted drive.
Hope this helps someone. Let me know!