Geo*_*rge 2 fuse amazon-s3 amazon-ec2 amazon-web-services s3fs
使用S3FS和FUSE将S3存储桶挂载到AWS EC2实例,我遇到了一个问题,即我的S3文件正在更新,但新文件没有采用适当的权限.
新文件的ACL权限是"---------"而不是"rw-r - r--".我确保通过以下方式正确安装铲斗:
sudo /usr/bin/s3fs -o allow_other -o default_acl="public-read" [bucketname] [mountpoint]
Run Code Online (Sandbox Code Playgroud)
并在/ etc/fstab中创建一个automount:
s3fs#[bucketname] [mountpoint] fuse defaults,noatime,allow_other,uid=1000,gid=1000,use_cache=/tmp,default_acl=public-read 0 0
Run Code Online (Sandbox Code Playgroud)
和/ etc/passwd-s3fs中的密码文件具有正确的权限.
我的设置是Ubuntu 13.04,PHP5,AWS SDK.
经过2天的实验,我在下面提供的答案中找到了一个解决方案(用于php).
在我的PHP脚本中,使用AWK SDK for PHP将文件PUT转换为S3,我不得不添加元数据,如下所示,这样就可以了:
$response = $s3->create_object('bucketname', 'mountpoint/'.$filename, array(
'body' => $json_data,
'contentType' => 'application/json',
'acl' => AmazonS3::ACL_PUBLIC,
'meta' => array(
'mode' => '33188', // x-amz-meta-mode
)
));
Run Code Online (Sandbox Code Playgroud)
模式"33188"在S3存储桶中定义了权限"rw-r - r--"而不是"---------"(但仅反映在EC2安装的文件夹中),后来继承了EC2安装的驱动器.
希望这有助于某人.让我知道!
| 归档时间: |
|
| 查看次数: |
4614 次 |
| 最近记录: |