基本概念介绍_开发指南_对象存储 OSS-阿里云  https://help.aliyun.com/document_detail/31827.html

强一致性

Object 操作在 OSS 上具有原子性,操作要么成功要么失败,不会存在有中间状态的Object。OSS 保证用户一旦上传完成之后读到的 Object 是完整的,OSS 不会返回给用户一个部分上传成功的 Object。

Object 操作在 OSS 上同样具有强一致性,用户一旦收到了一个上传(PUT)成功的响应,该上传的 Object 就已经立即可读,并且数据的三份副本已经写成功。不存在一种上传的中间状态,即 read-after-write 却无法读取到数据。对于删除操作也是一样的,用户删除指定的 Object 成功之后,该 Object 立即变为不存在。

强一致性方便了用户架构设计,可以使用跟传统存储设备同样的逻辑来使用OSS,修改立即可见,无需考虑最终一致性带来的各种问题。

OSS与文件系统的对比

OSS 是一个分布式的对象存储服务,提供的是一个 Key-Value 对形式的对象存储服务。用户可以根据 Object 的名称(Key)唯一的获取该Object的内容。虽然用户可以使用类似 test1/test.jpg 的名字,但是这并不表示用户的 Object 是保存在test1 目录下面的。对于 OSS 来说,test1/test.jpg 仅仅只是一个字符串,和a.jpg 这种并没有本质的区别。因此不同名称的 Object 之间的访问消耗的资源是类似的。

文件系统是一种典型的树状索引结构,一个名为 test1/test.jpg 的文件,访问过程需要先访问到 test1 这个目录,然后再在该目录下查找名为 test.jpg 的文件。因此文件系统可以很轻易的支持文件夹的操作,比如重命名目录、删除目录、移动目录等,因为这些操作仅仅只是针对目录节点的操作。这种组织结构也决定了文件系统访问越深的目录消耗的资源也越大,操作拥有很多文件的目录也会非常慢。

对于 OSS 来说,可以通过一些操作来模拟类似的功能,但是代价非常昂贵。比如重命名目录,希望将 test1 目录重命名成 test2,那么 OSS 的实际操作是将所有以 test1/ 开头的 Object 都重新复制成以 test2/ 开头的 Object,这是一个非常消耗资源的操作。因此在使用 OSS 的时候要尽量避免类似的操作。

OSS 保存的 Object 不支持修改(追加写 Object 需要调用特定的接口,生成的 Object 也和正常上传的 Object 类型上有差别)。用户哪怕是仅仅需要修改一个字节也需要重新上传整个 Object。而文件系统的文件支持修改,比如修改指定偏移位置的内容、截断文件尾部等,这些特点也使得文件系统拥有广泛的适用性。但另外一方面,OSS 能支持海量的用户并发访问,而文件系统会受限于单个设备的性能。

因此,将 OSS 映射为文件系统是非常低效的,也是不建议的做法。如果一定要挂载成文件系统的话,建议尽量只做写新文件、删除文件、读取文件这几种操作。使用 OSS 应该充分发挥其优点,即海量数据处理能力,优先用来存储海量的非结构化数据,比如图片、视频、文档等。

以下是OSS与文件系统的概念对比:

对象存储 OSS 文件系统
Object 文件
Bucket 主目录
Region
Endpoint
AccessKey
多级目录
GetService 获取主目录列表
GetBucket 获取文件列表
PutObject 写文件
AppendObject 追加写文件
GetObject 读文件
DeleteObject 删除文件
修改文件内容
CopyObject (目的和源相同) 修改文件属性
CopyObject 复制文件
重命名文件

OSS 术语表

英文 中文
Bucket 存储空间
Object 对象或者文件
Endpoint OSS 访问域名
Region 地域或者数据中心
AccessKey AccessKeyId 和 AccessKeySecret 的统称,访问密钥
Put Object 简单上传
Post Object 表单上传
Multipart Upload 分片上传
Append Object 追加上传
Get Object 简单下载
Callback 回调
Object Meta 文件元信息。用来描述文件信息,例如长度,类型等
Data 文件数据
Key 文件名
ACL (Access Control List) 存储空间或者文件的权限

新建文件夹_管理文件_控制台用户指南_对象存储 OSS-阿里云 https://help.aliyun.com/document_detail/31910.html

新建文件夹
更新时间:2018-06-08 18:13:54 编辑 ·
阿里云 OSS 服务是没有文件夹这个概念的,所有元素都是以对象来存储。OSS 控制台中的文件夹本质上来说是创建了一个大小为 0 并以”/“结尾的对象用于同类文件的归类操作和批处理,同时控制台默认将以”/“结尾的对象作为文件夹形式展现。该对象同样可以上传及下载。用户可以在 OSS 控制台中,采用同 Windows 文件夹的基本操作使用 OSS 文件夹。

说明
对于任何一个以”/“结尾的对象,不论该对象是否存有数据,在控制台中都是以文件夹的方式显示,用户只能通过 API 或 SDK 的方式来下载该对象。对模拟文件夹具体的实现与操作可以参考:

OSS与文件系统的对比的更多相关文章

  1. OSS与文件系统的对比 文件存储 块存储 对象存储

    基本概念介绍_开发指南_对象存储 OSS-阿里云  https://help.aliyun.com/document_detail/31827.html 强一致性 Object 操作在 OSS 上具有 ...

  2. OSS介绍

    1 基本概念介绍 1.1 存储空间(Bucket) 存储空间是您用于存储对象(Object)的容器,所有的对象都必须隶属于某个存储空间.您可以设置和修改存储空间属性用来控制地域.访问权限.生命周期等, ...

  3. Ext3日记文件系统为什么文件系统还会损坏?

    问题提出      在我们产品使用的多种文件系统中,ext3文件系统问题的一致性问题比较突出(这里的文件系统一致性问题特指文件系统元数据的一致性,下同).比如下面2例ext3文件系统损坏案例:     ...

  4. GoodSync 同步 对比 备份

    单向/双向皆可,针对任何一侧的文件进行处理,两侧文件都进行更新 文件同步 的操作过程是:确保两处或多处包含完全一致.及时更新 的各种文件.当对某一处进行文件添加.更改或删除,则同步操作将对对应的 另一 ...

  5. 【Maven学习】Nexus OSS私服仓库的备份与迁移

    背景 在上一篇博客 [Maven学习]Nexus OSS私服仓库的安装和配置 中,我们已经在机房搭建好了新的Nexus OSS私服仓库.下面是两个版本的Nexus OSS私服仓库的对比图. 老的Nex ...

  6. GFS, HDFS, Blob File System架构对比

    分布式文件系统很多,包括GFS,HDFS,淘宝开源的TFS,Tencent用于相册存储的TFS (Tencent FS,为了便于区别,后续称为QFS),以及Facebook Haystack.其中,T ...

  7. 一篇文章让你理解Ceph的三种存储接口(块设备、文件系统、对象存储)

    “Ceph是一个开源的.统一的.分布式的存储系统”,这是我们宣传Ceph时常说的一句话,其中“统一”是说Ceph可以一套存储系统同时提供块设备存储.文件系统存储和对象存储三种存储功能.一听这句话,具有 ...

  8. Nexus OSS私服仓库的备份与迁移

    背景 在上一篇博客 [Maven学习]Nexus OSS私服仓库的安装和配置 中,我们已经在机房搭建好了新的Nexus OSS私服仓库.下面是两个版本的Nexus OSS私服仓库的对比图. 老的Nex ...

  9. ## 分享一下Mac(苹果电脑)里面好用的软件!

    该文章主要分享 Mac电脑常用的软件 文章来源于 github小弟调调™的仓库转载 说明 [Open-Source Software][OSS Icon] 表示 开源软件 ,点击进入 开源 仓库: ...

随机推荐

  1. run loop

    Objective-C之run loop详解 作者:wangzz 原文地址:http://blog.csdn.net/wzzvictory/article/details/9237973 转载请注明出 ...

  2. Bullet:MySQL增强半同步参数rpl_semi_sync_master_wait_point值AFTER_SYNC和AFTER_COMMIT的对比实验

    MySQL 5.7.22启用增强半同步复制 MySQL对该参数值的描述 Semisync can wait for slave ACKs at one of two points, AFTER_SYN ...

  3. MyBatis 实现分页功能

    MySQL 的分页功能是基于内存的分页(即查出来所有记录,再按起始位置和页面容量取出结果). 案例:①根据用户名(支持模糊查询).用户角色 id 查询用户列表(即根据用户名称或根据用户角色 id 又或 ...

  4. [Python3网络爬虫开发实战] 6.1-什么是Ajax

    Ajax,全称为Asynchronous JavaScript and XML,即异步的JavaScript和XML.它不是一门编程语言,而是利用JavaScript在保证页面不被刷新.页面链接不改变 ...

  5. 微信小程序 video组件----真机测试position:fixed无效 且有黑底

    1.问题描述 video组件fixed后,视频随页面滚动,且有个黑色底停留在页面. 页面滚动前 滚动后 这里贴一下修改前代码,在微信开发者工具看是没有任何问题的.在手机端测试就有以上的问题 <v ...

  6. Win2008 Server MySql安装包详细安装教程

    首先去官网下载 下载MySql 下载地址:http://downloads.mysql.com/archives/community/ 我这里选择MSI的32位安装包安装,服务器系统32位的. 安装M ...

  7. Python之机器学习-sklearn生成随机数据

    sklearn-生成随机数据 import numpy as np import pandas as pd import matplotlib.pyplot as plt from matplotli ...

  8. 【BZOJ 1202】 [HNOI2005]狡猾的商人(枚举区间也可行)

    题链:http://www.lydsy.com/JudgeOnline/problem.php?id=1202 其实也可以不使用加权并查集,通过画图可以发现,一个长区间和其包含的区间能够算出一个新区间 ...

  9. ICPC模板排版工具

    感谢参考:https://www.cnblogs.com/palayutm/p/6444833.html 额外安装texlive, ubuntu环境提供参考: 1.下载镜像包 https://mirr ...

  10. hdu 4871 树的分治+最短路记录路径

    /* 题意:给你一些节点和一些边,求最短路径树上是k个节点的最长的路径数. 解:1.求出最短路径树--spfa加记录 2.树上进行操作--树的分治,分别处理子树进行补集等运算 */ #include& ...