简介

OSSFS就以把OSS作为文件系统的一部分,能让你在linux系统中把OSS bucket挂载到本地文件系统中,实现数据的共享。

主要功能

ossfs 基于s3fs 构建,具有s3fs 的全部功能。主要功能包括:

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

局限性

ossfs提供的功能和性能和本地文件系统相比,具有一些局限性。具体包括:

  • 随机或者追加写文件会导致整个文件的重写。
  • 元数据操作,例如list directory,性能较差,因为需要远程访问OSS服务器。
  • 文件/文件夹的rename操作不是原子的。
  • 多个客户端挂载同一个OSS bucket时,依赖用户自行协调各个客户端的行为。例如避免多个客户端写同一个文件等等。
  • 不支持hard link。
  • 不适合用在高并发读/写的场景,这样会让系统的load升高。

安装包

centos 7

  ossfs_1.80.2_centos7.0_x86_64.rpm

centos 6.5

  ossfs_1.80.2_centos6.5_x86_64.rpm

安装方法

先看一下有没有安装fuse,如果有先删除了

yum remove fuse -y

把安装包传的服务器然后直接安装,以centos 7为例

yum -y localinstall ossfs_1..2_centos7.0_x86_64.rpm

配置

设置bucket name 和 AccessKeyId/Secret信息,将其存放在/etc/passwd-ossfs 文件中,注意这个文件的权限必须正确设置,建议设为640。

echo my-bucket:my-access-key-id:my-access-key-secret > /etc/passwd-ossfs
chmod /etc/passwd-ossfs

这里涉及到阿里的accessKeyId/Secret的知识。为了安全我们应该去新建一个RAM然后生成这个key。并对这个RAM进行限制。这样即使这个key被泄露,也不会对其它bucket造成危险。

挂载

ossfs my-bucket my-mount-point -ourl=my-oss-endpoint

可以把这句加到/etc/rc.local中

卸载

fusermount -u /tmp/ossfs

实验过程

这里出现的信息均不是真实。

[root@myhost ~]# yum remove fuse
Loaded plugins: fastestmirror
No Match for argument: fuse
No Packages marked for removal
[root@myhost ~]# yum localinstall ossfs_1..2_centos7.0_x86_64.rpm
Loaded plugins: fastestmirror
Examining ossfs_1..2_centos7.0_x86_64.rpm: ossfs-1.80.-.x86_64
Marking ossfs_1..2_centos7.0_x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package ossfs.x86_64 :1.80.- will be installed
--> Processing Dependency: fuse >= 2.8. for package: ossfs-1.80.-.x86_64
Loading mirror speeds from cached hostfile
--> Processing Dependency: fuse-libs >= 2.8. for package: ossfs-1.80.-.x86_64
--> Running transaction check
---> Package fuse.x86_64 :2.9.-.el7 will be installed
---> Package fuse-libs.x86_64 :2.9.-.el7 will be installed
--> Finished Dependency Resolution Dependencies Resolved ===========================================================================================================================================================================================
Package Arch Version Repository Size
===========================================================================================================================================================================================
Installing:
ossfs x86_64 1.80.- /ossfs_1..2_centos7.0_x86_64 4.0 M
Installing for dependencies:
fuse x86_64 2.9.-.el7 base k
fuse-libs x86_64 2.9.-.el7 base k Transaction Summary
===========================================================================================================================================================================================
Install Package (+ Dependent packages) Total size: 4.2 M
Total download size: k
Installed size: 4.5 M
Is this ok [y/d/N]: y
Downloading packages:
(/): fuse-2.9.-.el7.x86_64.rpm | kB ::
(/): fuse-libs-2.9.-.el7.x86_64.rpm | kB ::
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total kB/s | kB ::
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : fuse-libs-2.9.-.el7.x86_64 /
Installing : fuse-2.9.-.el7.x86_64 /
Installing : ossfs-1.80.-.x86_64 /
Verifying : ossfs-1.80.-.x86_64 /
Verifying : fuse-2.9.-.el7.x86_64 /
Verifying : fuse-libs-2.9.-.el7.x86_64 / Installed:
ossfs.x86_64 :1.80.- Dependency Installed:
fuse.x86_64 :2.9.-.el7 fuse-libs.x86_64 :2.9.-.el7 Complete! [root@myhost ~]# echo mybuckey:JMIdhjrtutkGtjjr:eFAC8jinzajflsietagv6JoOwfXbFN > /etc/passwd-ossfs
[root@myhost ~]# chmod /etc/passwd-ossfs
[root@myhost ~]# ossfs mybuckey /data1 -ourl=oss-cn-shenzhen-internal.aliyuncs.com
[root@myhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 40G .0G 36G % /
ossfs 256T 256T % /data1

阿里OSS-OSSFS的更多相关文章

  1. VUE-利用OSS BrowserJS-SDK实现阿里OSS前端上传

    项目中遇到利用阿里OSS上传文件,线上很多示例用到了各种SDK,却没有看到OSS BrowserJS-SDK相关示例,鉴于脑子不好使,记一下. 封装upload相关组件  使用npm安装SDK的开发 ...

  2. 微信公众号通过图片选取接口上传到阿里oss

    前言 之前写过一篇微信JS-SDK的使用方法,可进行参考 https://www.cnblogs.com/fozero/p/10256862.html 配置并调用公众号接口权限 1.配置权限微信公众号 ...

  3. ThinkPHP 提供Auth 权限管理、支付宝、微信支付、阿里oss、友盟推送、融云即时通讯、云通讯短信、Email、Excel、PDF 等等

    多功能 THinkPHP 开源框架 项目简介:使用 THinkPHP 开发项目的过程中把一些常用的功能或者第三方 sdk 整合好,开源供亲们参考,如 Auth 权限管理.支付宝.微信支付.阿里oss. ...

  4. 小程序--->小程序图片上传阿里OSS使用方法

    小程序图片上传阿里OSS使用方法 首先看下参考文档 ( http://blog.csdn.net/qq_38125123/article/details/73870667) 这里只将一些运用过程中遇到 ...

  5. java接受安卓及ios App上传的图片,并保存到阿里OSS

    做后台的时候,写了两个方法,分别用来获取安卓和苹果IOS端上传的头像,保存到阿里云OSS图片存储服务器上.(SMM框架) 安卓及H5版本: /** * 上传用户头像 */ @RequestMappin ...

  6. 关于使用阿里OSS服务搭建图床和使用PicGO上传图片到图床

    最近喜欢上了使用markdown来写博客,可是markdown的图片却是本地的,如果我要发博客,那么又要重复截图了.于是干脆弄了个图床,本地截图的时候上传到图床,markdown中的代码结果也是图床里 ...

  7. 通过阿里OSS文件服务返回的URL获取文件流下载

    我们都知道将文件上传到阿里的OSS文件服务上后,可以通过generatePresignedUrl(bucketName, key, expiration)方法获取该文件的防问路径,但是当我们知道该文件 ...

  8. 阿里oss上传图片react组件alioss-react,vue组件alioss-vue (不用我先收藏着,后端看下前端处理方法)

    1.介绍 最近开发了一个项目,其中需要一个上传图片到阿里云的 oss 上面,就是上传图片到阿里云的 oss 上面. 因为之前开发过 vue 的阿里云 oss 上传,所以直接复制粘 vue 的组件. 因 ...

  9. 使用laravel-amdin调用文件上传阿里oss注意点

    开发者工作中,项目代码开发提高效率,往往会使用一些github上面的一些扩展类,这里举例说明一下遇到的情况. 一.使用laravel-admin框架开发管理后台文件或者图片上传 情景:运营或者产品通过 ...

  10. aliyun-oss 通过redis来实现跨域上传图片到阿里 OSS并回显进度条

    public class PutObjectProgressListener implements ProgressListener {        private long bytesWritte ...

随机推荐

  1. 中国 SaaS 企业如何突围?这几点是关键!

    进入2019年,关于SaaS的各种言论甚嚣尘上,有人看好:“SaaS市场得大客户者得天下”,也有人唱衰:“SaaS已死,下一个”.在众说纷纭中,中国SaaS企业的成功之路迷雾重重,前期走的较早的头部S ...

  2. Webpack下创建vue项目-非vue-cli

    开始准备 初始化工程目录 shell npm init -y 安装vue npm install vue 安装 webpack npm install webpack --save-dev webpa ...

  3. anaconda安装使用

    Conda是一个开源的包.环境管理器,可以用于在同一个机器上安装不同版本的软件包及其依赖,并能够在不同的环境之间切换 下载:https://mirrors.tuna.tsinghua.edu.cn/a ...

  4. 64位电脑上安装MySQL进行MFC开发的相关问题

    本人环境: 64位win7 + MySQL5.6 安装MySQL的时候有个选项是 选择:32位/64位.默认情况下是安装当前操作系统的位数.但我在使用VS进行开发的时候发现问题: error LNK2 ...

  5. HDFS 块

  6. numpy.flatnonzero():

    numpy.flatnonzero(): 该函数输入一个矩阵,返回扁平化后矩阵中非零元素的位置(index) 这是官方文档给出的用法,非常正规,输入一个矩阵,返回了其中非零元素的位置. 1 >& ...

  7. Vertex Covers(高维前缀和)

    Vertex Covers 时间限制: 5 Sec  内存限制: 128 MB提交: 5  解决: 3 题目描述 In graph theory, a vertex cover of a graph ...

  8. LA2965 Jurassic Remains

    Jurassic Remains https://vjudge.net/problem/UVALive-2965 Paleontologists in Siberia have recently fo ...

  9. Leetcode142. Linked List Cycle II环形链表2

    给定一个链表,返回链表开始入环的第一个节点. 如果链表无环,则返回 null. 说明:不允许修改给定的链表. 进阶: 你是否可以不用额外空间解决此题? 方法一:使用map 方法二: 分两个步骤,首先通 ...

  10. html 输入框显示“小叉叉”的清空方法

    在IE10以下,我们的输入框input会出现小叉叉.怎么解决这个问题呢? 针对input框我们做一个处理 <style type="text/css"> input:: ...