swift的高级特性_第1页
swift的高级特性_第2页
swift的高级特性_第3页
swift的高级特性_第4页
swift的高级特性_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、云存储技术授课人:童浩动态大对象失效对象伪层次目录多版本对象有条件获取对象静态大对象设置访问权限SWIFT的高级特性5提纲动态大对象失效对象伪层次目录多版本对象有条件获取对象 其它特性Swift允许对象的最大值是5GB如何支持5GB的大对象将文件分割成5GB的分段把这些分段都上传到同一个容器里(块对象)创建一个manifest文件把块对象联系起来大对象文件段1块对象1块对象2块对象3Manifest文件段2文件段3文件大对象下载块对象可以像其它对象一样进行CRUD操作下载manifest对象时,Swift会把指向的所有块对 象内容连接起来返回给用户块对象1块对象2块对象3Manifest文件对

2、象动态大对象块对象每个块对象的名字拥有相同的前缀块对象名字的排列次序与需要连接的次序相同Manifest对象没有任何数据元数据:X-Object-Manifest:/Tiger_1 Tiger_2 Tiger_3curl -X PUT -i -H $Token -H “X-Object-Manifest:Animals/Tiger_” -H “Content-Length:0” $URL/Animlas/Tigercurl -X PUT -i -H $Token -H “X-Object-Manifest:Animals/Tiger_” -H “Content-Length:0” $URL/A

3、nimlas/Tiger文T牛 块 root山阳 :-Tiger动态大对象上传块文件动态大对象块文件列表动态大对象上传manifest文件动态大对象Animals里对象列表动态大对象下载整个对象动态大对象下载块对象创建大对象假定有一个文件car,12GB,现在需要把该文件存放到Swift存储系统18提纲动态大对象失效对象伪层次目录多版本对象有条件获取对象 其它特性失效对象当处理临时或与时间有关的数据的时候,可以利用 Swift来管理对象失效设置一个绝对失效时间(秒)X-Delete-At:13486919052012年9月26日20:38:25设置一个相对失效时间(秒)X-Delete-Aft

4、er:3600curl X PUT i H $Token T obj -H “X-Delete-After:300” $URL/Con/obj失效对象设置一个绝对失效时间(秒)X-Delete-At:13981500002014年4月22日15:00:00失效对象创建成功,但是当过了10:47以后自动失效失效对象设置一个相对失效时间(秒)X-Delete-After:240失效对象先看见上传成功,5分钟后自动失效X-Delete-After:120设置对象失效时间假定有一个log文件,按照有关规定要求,需要存储 5年(分钟)。为了节省资源,你应该如何上传该文 件?假定有一个news文件,按照有

5、关规定要求,该文件 必须保留到2015年年底。为了节省资源,你应该如 何上传该文件?25提纲动态大对象失效对象伪层次目录多版本对象有条件获取对象 其它特性伪层次目录Swift是不支持多层次目录的,但是用户可以在对象名字中添加/来模拟多层目录结构为了访问伪层次目录,需要使用delimiter参数photos/animals/cats/persian.jpg photos/animals/cats/siamese.jpg photos/animals/dogs/corgi.jpg photos/animals/dogs/poodle.jpg photos/animals/dogs/terrier.

6、jpg photos/me.jpg photos/plants/fern.jpg photos/plants/rose.jpg实现伪层次目录首先建立下面的文件然后创建photos容器然后上传文件,使用长对象名animals/cats/persian.jpgpersian.jpg siamese.jpg corgi.jpg poodle.jpg terrier.jpg me.jpg fern.jpg rose.jpg实现伪层次目录创建photos容器实现伪层次目录上传伪目录对象伪层次目录在本地建立相应目录结构使用swift CLI上传photos/animals/cats/persian.jpg

7、 photos/animals/cats/siamese.jpg photos/animals/dogs/corgi.jpg photos/animals/dogs/poodle.jpg photos/animals/dogs/terrier.jpg photos/me.jpg photos/plants/fern.jpg photos/plants/rose.jpg伪层次目录在本地建立相应目录结构使用swift CLI上传photos/animals/cat photos/animals/dog photos/plants/fern photos/plants/rose实现伪层次目录检查容器

8、photos内容:8个对象访问伪层次目录获取给定伪目录的内容,使用delimiter=/ 以及prefix=animals创建伪层次目录用户有如下结构的一些文件,你如何把这些文件存储到Swift存储系统,并且还能保持其逻辑结构信息?photos/cats/cat1 photos/cats/cat2 photos/plants/lily photos/plants/rosecurl X GET i H $Token $URL/photos?prefix=plants/&delimiter=/创建伪层次目录用户有如下结构的一些文件,你如何把这些文件存储到Swift存储系统,并且还能保持其逻

9、辑结构信息?photos/animals/cats/cat1.jpg photos/animals/cats/cat2.jpg photos/animals/dogs/dog1.jpg photos/animals/dogs/dog2.jpg photos/plants/lily.jpg photos/plants/rose.jpg你如何获取所有dogs目录下的文件?你如何获取所有plants目录下的文件?你如何获取所有animals目录下的文件?curl X GET i H $Token $URL/photos?prefix=plants/&delimiter=/36提纲动态大对象失

10、效对象伪层次目录多版本对象有条件获取对象 其它特性多版本对象版本化备份文件在备份文件上加时间戳,避免新的备份文件把旧 的备份文件覆盖掉。必要的时候恢复前面的备份 文件。多版本对象机制就是用来实现版本化备份文件的多版本对象实现置容器配置文件/etc/swift/container-server.conf里的allow_versions=true建立2个容器,并把2个容器联系起来源容器:存放最新版本的对象创建源容器时通过X-Versions-Location和备份容器联系起来备份容器:存放老版本的对象源容器X-Versions-Location备份容器多版本对象实现当源容器里的对象进行修改时,就把

11、原来的对象移到备份容器里。并在对象名字上加时间戳多版本对象命名规则:length:对象名的长度name:对象名timestamp:时间戳多版本容器的建立先创建存放最新版本的源容器,并指定备份容器多版本容器的建立创建备份容器第一次添加数据到源容器没有任何特别上传修改后的对象没有任何特别查看源容器原来的对象转移到了老版本容器查看备份容器原来的对象转移到了备份容器删除源版本容器里的对象备份容器里最新的对象转移到了源容器取消容器的多版本功能通过取消容器的X-Versions-Location元数据项创建多版本容器创建如下的多版本容器,并上传数据进行验证源容器: Cars_学号备份容器:Cars_Ver

12、sions对象:car验证流程:1、上传car,并查看car对象内容2、在本地修改car文件3、再次上传car,查看car对象内容,4、查看备份容器的对象列表和内容5、删除car,并查看源容器列表和内容6、查看备份容器列表和内容curl X PUT i H $Token -H “X-Versions-Location:Cars_Versions_xxx”$URL/Cars_xxx49提纲动态大对象失效对象伪层次目录多版本对象有条件获取对象 其它特性获取满足条件的对象给对象下载命令添加条件,只下载满足条件的对象 数据基于系统元数据头部项If-MatchIf-None-MatchIf-Modifi

13、ed-SinceIf-Unmodified-SinceRangeIF-MATCH如果所下载的对象的etag值和请求命令中给定的值相同,系统将返回该对象,否则就不返回使用场景:只下载正确的对象curl -X url -X GET -i -H $Token -H “If-Match:66c4fa4d11a8021428260b297aa5046f”$URL/zwc1/obj1If-Match在If-Match头部项给定的值,和对象的etag值相同If-Match在If-Match头部项给定的值,和对象的etag值不同IF-NONE-MATCH如果所下载的对象的etag值和请求命令中给定的值不同,系

14、统将返回该对象,否则返回空body目的:只有当服务器端的数据修改了,才需要下载curl -X url -X GET -i -H $Token -H “If-None-Match:66c4fa4d11a8021428260b297aa5046$URL/zwc1/obj1If-None-Match在If-None-Match头部项给定的值,和对象的etag值 相同If-None-Match在If-None-Match头部项给定的值,和对象的etag值 不同IF-MODIFIED-SINCE如果所下载的对象在给定的时间以后修改过,那么 就返回,否则返回空body目的:只有当服务器端的数据在给定时间以

15、后修改了,才需要下载curl -X url -X GET -i -H $Token -H “If-Modified-Since:66c4fa4d11a8021428260b297aa50$URL/zwc1/obj1If-Modified-Since下载的对象在给定的时间以后修改过If-Modified-Since下载的对象在给定的时间以后没有修改过IF-UNMODIFIED-SINCE如果所下载的对象在给定的时间以后没有修改过, 那么就返回,否则返回空body目的:只有当服务器端的数据在给定时间以后没有修改过,才需要下载curl -X url -X GET -i -H $Token -H “I

16、f-Unmodified-Since:66c4fa4d11a8021428260b297aa$URL/zwc1/obj1If-Unmodified-Since下载的对象在给定的时间以后修改过If-Unmodified-Since下载的对象在给定的时间以后没有修改过获取对象的部分数据获取对象的一部分数据-H “Range:bytes=-5”说明方法Range:bytes=-5返回最后5个字节Range: bytes=2-5返回第2个字节后到第5个字节Range: bytes=3-返回第3个字节后的所有字节获 取 对 象 的 部 主 护 数 据66提纲动态大对象失效对象伪层次目录多版本对象有条件获

17、取对象 其它特性动态大对象失效对象伪层次目录多版本对象有条件获取对象静态大对象设置访问权限SWIFT的高级特性68Q & A静态大对象Manifest对象按顺序列出每个块对象的名字、大小、校验和上传时需要添加?Multipart-manifest=put “path”: ”mycontainer/objseq1”,“etag”: “0228c7926b8b642dfb29554cd1f00963”,“size_bytes”: 1468006,“path”: ”mycontainer/seq-obj2”,“etag”: “5bfc9ea51a00b790717eeb934fb77b9b”

18、,“size_bytes”: 1572864,“path”: ”mycontainer/seq-final”,“etag”: “b9c3da507d2557c1ddc51f27c54bae51”,“size_bytes”: 256如何 获取 etag, size?静态大对象上传块对象如何 获取 etag, size?静态大对象创建Manifest文件按顺序列出每个块对象的名字、大小、校验和通过GET获取大小、校验和如何 获取 etag, size?静态大对象创建Manifest文件按顺序列出每个块对象的名字、大小、校验和 “path”: ”animals/Tiger1”,“etag”: “cc0788ac8dd2a22f03b9638e2e678c1b”,“size_bytes”: 40,“path”: ”animals/Tiger2”,“etag”: “598a4549239c65b2c037ec2157c704dc”,“size_bytes”: 40,“path”: ”animals/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论