开发者社区> 问答> 正文

ossfs工具发布啦,让传统软件和云端存储完美融合

如果您

  • 想要把OSS作为一个弹性扩容,按需付费的云端存储,让论坛/博客/ftp等软件的数据能自动同步到OSS
  • 想让多台机器快速共享OSS的数据

那么您应该试一试ossfs,它能把OSS的bucket挂载到本地文件系统上,通过文件系统接口便捷的操作OSS上的数据。您不必等各路大神为wordpress/ftp等软件开发OSS插件,也不必按照繁琐的教程设置,就能将数据自动同步到云端。ossfs把传统软件和云端存储完美的结合起来了。


主要功能
  • 支持POSIX 文件系统的大部分功能,包括文件读写,目录,链接操作,权限,uid/gid,以及扩展属性(extended attributes)。
  • 通过OSS 的multipart 功能上传大文件。
  • MD5 校验保证数据完整性。

注意事项
ossfs提供的功能/性能和本地文件系统相比,具有一些局限性。具体包括:
  • ossfs只支持linux/mac操作系统。
  • 随机或者追加写文件会导致整个文件的重写。
  • 元数据操作,例如list directory,性能较差,因为需要远程访问oss服务器。
  • 文件/文件夹的rename操作不是原子的。
  • 多个客户端挂载同一个oss bucket时,依赖用户自行协调各个客户端的行为。例如避免多个客户端写同一个文件等等。
  • 不支持hard link。

因此,如果您需要一个工具让数据快速同步至云端,或者在多台机器之间共享,那么ossfs是一个好选择。如果是数据库等对存储的性能和可靠性要求苛刻的应用,请慎重选择。


ossfs基于广泛应用的s3fs开发,代码已开源至github(https://github.com/aliyun/ossfs ,并为常见的linux版本制作了安装包。


ossfs安装包下载
https://github.com/aliyun/ossfs/wiki/install


安装使用说明
Ubuntu
首先安装gdebi,然后使用gdebi安装下载好的安装包。
sudo apt-get update
sudo apt-get install gdebi-core
sudo gdebi your_ossfs_package

CentOS
sudo yum localinstall your_ossfs_package
要运行ossfs,您需要提供要挂载的bucket,对应的access_key_id/access_key_secret,该bucket对应的url以及挂载的位置。



首先设置bucket name, access key/id信息,将其存放在~/.passwd-ossfs文件中,注意这个文件的权限必须被正确设置,建议设为600。
echo your_bucket_name:your_key_id:your_key_secret > ~/.passwd-ossfs
chmod 600 ~/.passwd-ossfs
然后将oss bucket挂载到指定目录
ossfs your_oss_bucket your_mount_dir -ourl=your_oss_service_url
示例


假设将ossfs-fuse这个bucket 挂载到/tmp/ossfs目录下,access key id是faint,access key secret是123,oss service url是http://oss-cn-hangzhou.aliyuncs.com
echo ossfs-fuse:faint:123 > ~/.passwd-ossfs
chmod 600 ~/.passwd-ossfs
mkdir /tmp/ossfs
ossfs ossfs-fuse /tmp/ossfs -ourl=http://oss-cn-hangzhou.aliyuncs.com

注1:您可在oss控制台的“OSS域名”这一栏查询bucket的url。 如果您是在阿里云ECS上使用ossfs,请使用内网url,这样流量免费。
          

         上图例子中,为ossfs传入的bucket name是render_120428i79,url是http://oss-cn-hangzhou.aliyuncs.com
注2:ossfs允许用户指定多组bucket/access_key_id/access_key_secret信息。当有多组信息,写入.passwd-ossfs的信息格式为:
         your_bucket_name1:your_access_key_id1:your_access_key_secret1
         your_bucket_name2:your_access_key_id2:your_access_key_secret2
         ……


更详细安装使用说明,请参见相关文档 (https://github.com/aliyun/ossfs/wiki


期待您的试用并反馈。






展开
收起
scorpion 2015-12-08 09:18:56 72244 0
51 条回答
写回答
取消 提交回答
  • 竟然两年没回帖了。。挖个坟。。

    如果是论坛的话,用这个工具把附件目录挂在上去的话,走的应该要先从oss读取到ecs上然后下载了。是吧
    2019-02-20 20:57:22
    赞同 展开评论 打赏
  • Reossfs工具发布啦,让传统软件和云端存储完美融合
    已经安装说明成功挂载,非常好用。但是也有个问题,就是挂载成ECS的本地盘后,似乎阿里云会对ecs定期扫描数据盘的文件,然后挂载的oss目录也没放过,会产出大量的请求次数。

    所以我想通过php的函数system()执行命令 ossfs ossfs-fuse /tmp/ossfs -ourl=http://oss-cn-hangzhou.aliyuncs.com,在需要上传文件的时候才挂载,传完卸载对应的目录,从而避免一直挂载由于的扫描文件带来的oss请求。

    但似乎通过php的函数system()执行执行不到 ossfs的命令,不知道是什么原因。不知道有没有办法解决

    -------------------------

    Reossfs工具发布啦,让传统软件和云端存储完美融合
    简而言之,就是有没有办法通过php执行命令来挂载或卸载 oos目录的办法
    2017-11-05 16:49:49
    赞同 展开评论 打赏
  • 是不是中文名字的没办法?


    试了只有英文名字的才可以使用。
    中文的不行
    2017-08-10 02:20:07
    赞同 展开评论 打赏
  • Reossfs工具发布啦,让传统软件和云端存储完美融合
    我用nextcloud挂载了oss,但是文件页面加载不出来.

    -------------------------

    Reossfs工具发布啦,让传统软件和云端存储完美融合
    extcloud挂载oss后网站文件列表不能列出文件
    2017-07-15 11:38:53
    赞同 展开评论 打赏
  • 收藏了
    2017-03-25 23:50:33
    赞同 展开评论 打赏
  • Reossfs工具发布啦,让传统软件和云端存储完美融合
    上传下载性能如何,有具体数据参考吗,或者有什么工具能评估,vdbench可以吗?
    2017-03-17 15:50:28
    赞同 展开评论 打赏
  • Reossfs工具发布啦,让传统软件和云端存储完美融合
    这东西坑死人啊,/usr/local/aegis/alihids/AliHids老在扫描OSS的文件,导致OSS产生额外费用,一天500万次的Get访问次数。。。。
    2016-12-28 15:09:33
    赞同 展开评论 打赏
  • Reossfs工具发布啦,让传统软件和云端存储完美融合
    请问一下,我在阿里ESC上挂载不了 .. 系统是 CentOS 6.5 ..

    如果是内网连接 日志是

    [root@iZ2ze6s1ez9bmt3fqdvr9tZ home]# ossfs -f oss20161209 /oss -ourl=http://oss-cn-beijing-internal.aliyuncs.com
    [ERR] curl.cpp:RequestPerform(1860): ### CURLE_COULDNT_CONNECT
    [ERR] curl.cpp:RequestPerform(1860): ### CURLE_COULDNT_CONNECT
    [ERR] curl.cpp:RequestPerform(1860): ### CURLE_COULDNT_CONNECT
    [ERR] curl.cpp:RequestPerform(1960): ### giving up
    [ERR] curl.cpp:CheckBucket(2625): Check bucket failed, OSS response:
    [CRT] s3fs.cpp:s3fs_check_service(3699): unable to connect - result of checking service.
    ossfs: Check OSS service failed. Run with -f option for more details.

    如果是外网链接 日志是

    [root@iZ2ze6s1ez9bmt3fqdvr9tZ home]# ossfs -f oss20161209 /oss -ourl=http://oss-cn-beijing.aliyuncs.com
    [ERR] curl.cpp:CheckBucket(2625): Check bucket failed, OSS response: <?xml version="1.0" encoding="UTF-8"?>
    <Error>
      <Code>SignatureDoesNotMatch</Code>
      <Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message>
      <RequestId>584A72EC6FF1C5EC45EB4F89</RequestId>
      <HostId>oss20161209.oss-cn-beijing.aliyuncs.com</HostId>
      <OSSAccessKeyId>LTAIa9o8wcDTA9CK</OSSAccessKeyId>
      <SignatureProvided>IdVUZK7fj8vzLVam8ty3MQuD+z4=</SignatureProvided>
      <StringToSign>GET


    Fri, 09 Dec 2016 09:01:32 GMT
    /oss20161209/</StringToSign>
      <StringToSignBytes>47 45 54 0A 0A 0A 46 72 69 2C 20 30 39 20 44 65 63 20 32 30 31 36 20 30 39 3A 30 31 3A 33 32 20 47 4D 54 0A 2F 6F 73 73 32 30 31 36 31 32 30 39 2F </StringToSignBytes>
    </Error>

    [ERR] curl.cpp:CheckBucket(2625): Check bucket failed, OSS response: <?xml version="1.0" encoding="UTF-8"?>
    <Error>
      <Code>SignatureDoesNotMatch</Code>
      <Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message>
      <RequestId>584A72EC6FF1C5EC45EB515A</RequestId>
      <HostId>oss20161209.oss-cn-beijing.aliyuncs.com</HostId>
      <OSSAccessKeyId>LTAIa9o8wcDTA9CK</OSSAccessKeyId>
      <SignatureProvided>IdVUZK7fj8vzLVam8ty3MQuD+z4=</SignatureProvided>
      <StringToSign>GET


    Fri, 09 Dec 2016 09:01:32 GMT
    /oss20161209/</StringToSign>
      <StringToSignBytes>47 45 54 0A 0A 0A 46 72 69 2C 20 30 39 20 44 65 63 20 32 30 31 36 20 30 39 3A 30 31 3A 33 32 20 47 4D 54 0A 2F 6F 73 73 32 30 31 36 31 32 30 39 2F </StringToSignBytes>
    </Error>

    [CRT] s3fs.cpp:s3fs_check_service(3685): invalid credentials - result of checking service.
    ossfs: Check OSS service failed. Run with -f option for more details.

    id和hey应该都没问题 .. 因为我可以从windows的oss客户端访问oss ..
    我总感觉好像是我的oss设置有什么问题 ..
    2016-12-09 17:08:46
    赞同 展开评论 打赏
  • Reossfs工具发布啦,让传统软件和云端存储完美融合
    请问ossfs可以和CloudFS同时启动吗?

    -------------------------

    回 104楼andyvann的帖子
    补充:CloudFS和CloudFS分别用于挂载不同的目录
    2016-11-16 16:20:49
    赞同 展开评论 打赏
  • Reossfs工具发布啦,让传统软件和云端存储完美融合
    这个支持的最大连同时在线连接数是多少并发了?
    2016-09-07 16:37:33
    赞同 展开评论 打赏
  • Reossfs工具发布啦,让传统软件和云端存储完美融合
    OSS 用作备份超级方便,赞一个!
    2016-08-27 10:00:43
    赞同 展开评论 打赏
  • Reossfs工具发布啦,让传统软件和云端存储完美融合
    Loaded plugins: langpacks
    Skipping: your_ossfs_package, filename does not end in .rpm.
    Nothing to do
    2016-08-18 14:39:55
    赞同 展开评论 打赏
  • Reossfs工具发布啦,让传统软件和云端存储完美融合
    我已经按照教程成功挂在oss了
    我博可是wordpress搭的,怎样同步已前上传的照片和以后将要上传的?能解答下吗?非常感谢
    2016-06-15 20:53:01
    赞同 展开评论 打赏
  • qqb
    Reossfs工具发布啦,让传统软件和云端存储完美融合
    ossfs 用的什么端口,公司its管控很严格,已经打开了80和443端口,但依然不能挂载,命令执行不报错,但是挂载不上。
    2016-06-13 10:56:44
    赞同 展开评论 打赏
  • Reossfs工具发布啦,让传统软件和云端存储完美融合
    第一步安装:sudo yum localinstall your_ossfs_package --nogpgcheck
    就出现:[root@iZ23fccstupZ ~]# sudo yum localinstall your_ossfs_package --nogpgcheck
    Loaded plugins: langpacks
    Skipping: your_ossfs_package, filename does not end in .rpm.
    Nothing to do
    这是什么意思
    2016-06-03 21:14:37
    赞同 展开评论 打赏
  • Reossfs工具发布啦,让传统软件和云端存储完美融合
    -bash ossfs :command not found  什么问题
    2016-05-10 21:27:55
    赞同 展开评论 打赏
  • Reossfs工具发布啦,让传统软件和云端存储完美融合
    请问如果使用ossfs的话,还能用bucket的方式来使用CDN吗?
    2016-04-27 17:57:52
    赞同 展开评论 打赏
  • Reossfs工具发布啦,让传统软件和云端存储完美融合
    CentOS 6.3 64位可以使用吗

    -------------------------

    回 72楼梦丫头的帖子
    怎么卸载cloudfs,我的也提示Transaction Check Error:
      file /usr/include/fuse.h from install of ossfs-1.7.9.3-1.x86_64 conflicts with file from package fuse-devel-2.8.3-4.el6.x86_64
      file /usr/include/fuse/fuse.h from install of ossfs-1.7.9.3-1.x86_64 conflicts with file from package fuse-devel-2.8.3-4.el6.x86_64
      file /usr/include/fuse/cuse_lowlevel.h from install of ossfs-1.7.9.3-1.x86_64 conflicts with file from package fuse-devel-2.8.3-4.el6.x86_64
      file /usr/include/fuse/fuse_common.h from install of ossfs-1.7.9.3-1.x86_64 conflicts with file from package fuse-devel-2.8.3-4.el6.x86_64
      file /usr/include/fuse/fuse_common_compat.h from install of ossfs-1.7.9.3-1.x86_64 conflicts with file from package fuse-devel-2.8.3-4.el6.x86_64
      file /usr/include/fuse/fuse_compat.h from install of ossfs-1.7.9.3-1.x86_64 conflicts with file from package fuse-devel-2.8.3-4.el6.x86_64
      file /usr/include/fuse/fuse_lowlevel.h from install of ossfs-1.7.9.3-1.x86_64 conflicts with file from package fuse-devel-2.8.3-4.el6.x86_64
      file /usr/include/fuse/fuse_lowlevel_compat.h from install of ossfs-1.7.9.3-1.x86_64 conflicts with file from package fuse-devel-2.8.3-4.el6.x86_64
      file /usr/include/fuse/fuse_opt.h from install of ossfs-1.7.9.3-1.x86_64 conflicts with file from package fuse-devel-2.8.3-4.el6.x86_64
      file /usr/include/ulockmgr.h from install of ossfs-1.7.9.3-1.x86_64 conflicts with file from package fuse-devel-2.8.3-4.el6.x86_64

    Error Summary

    -------------------------

    回 90楼啊云里的帖子
    yum remove fuse-devel-2.8.3-4.el6.x86_64    解决了
    2016-04-24 10:59:24
    赞同 展开评论 打赏
  • Reossfs工具发布啦,让传统软件和云端存储完美融合
    有好多疑问。。。

    文件是彻底保存在OSS了,还是ECS和OSS各一份?
    如果各一份的话,ECS的删除了是不是OSS的也没了?

    用户访问的时候,走的是ECS的流量还是OSS的流量?
    2016-04-24 10:07:15
    赞同 展开评论 打赏
  • Reossfs工具发布啦,让传统软件和云端存储完美融合
    安装没问题,挂载没报错,但是ls后文件夹是空的,怎么查看挂载信息呢?mount后并没有相关信息
    2016-04-15 10:11:55
    赞同 展开评论 打赏
滑动查看更多
问答排行榜
最热
最新

相关电子书

更多
混合云存储开启企业上云新路径---阿里云混合云备份容灾方案发布 立即下载
软件定义存储面向云的企业级存储 重构 立即下载
软件定义存储-面向云的企业级存储重构 立即下载