博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OAS的使用——控制台和命令行工具
阅读量:5956 次
发布时间:2019-06-19

本文共 3050 字,大约阅读时间需要 10 分钟。

OAS的使用——控制台和命令行工具

[TOC]

使用需求

10

  1. 使用命令行工具上传三个大小不一的文件。
  2. 使用命令行工具查看三个已上传文件的信息,其中最大的文件使用multipart方式上传。
  3. 使用命令行工具下载三个文件。
  4. 使用命令行工具删除这三个文件。

控制台的使用

使用参考官方文档中的。

命令行工具的使用

OAS提供命令行工具oascmd.py,命令行工具可以给用户一个快捷的使用工具,不需要任何代码编写就可以使用OAS的功能,在实际使用中命令行工具更多作为一种测试工具。

工具的获取和环境配置(基于Linux)

按照,获取命令工具的方式有两种:使用pip以及使用源码安装。这里使用pip进行安装。

#命令行工具依托于Python SDKsudo pip install oassdk

安装成功可以这样进行验证:

11
然后再验证Python SDK是否安装正确:
12
没有异常表示正确安装。

根据进行授权配置:

oascmd.py config [-h] --host host --id id --key key [--port port] [--config-file filename]

13

配置过后,oascmd.py会将配置的信息写到一个文件里,因此如果有配置修改,可以直接修改这个文件。

测试一下

oascmd.py ls

14

测试显示我们已经连接上oas服务,现在可以进行各种操作了。

新建Vault

为了测试,新建一个Vault。

oascmd.py createvault oas://oas_archive_jf

15

可以看到,名为“oas_archive_jf”的新Vault已经创建成功。

上传文件

从官方文档上可以看出,上传分为小文件上传和大文件上传,大文件上传建议使用multipart上传,这样可以避免上传失败要重传整个文件。

注意:
注意保存上传过程中返回的archive_id, 后面对Archive的一些操作需要依赖Archive_id,archive_id是OAS中对archive的唯一标识。

小文件上传

上传文件名为image001.jpg和matplotlib-1.4.3.tar.gz.

oascmd.py upload oas://oas_archive_jf image001.jpgoascmd.py upload oas://oas_archive_jf matplotlib-1.4.3.tar

16

注意:

上传成功的标志是命令行返回了Archive ID,如果上传完马上查看Vault的信息,可能是看不到变化的,因为这些信息并不是实时的(官方文档对此多处说明)。
17

大文件上传

oascmd.py上传文件大于100M时会自动原则multipart方式上传。这里使用multipart上传剩下的那个大文件。

oascmd.py upload oas://oas_archive_jf ubuntu-14.04.2-desktop-i386.iso -p 64M

18

注意:

上传过程请注意保存Archive id和upload id.

等待上传所有的16个part,上传过程中查看multipart job列表:

oascmd.py listmupload oas://oas_archive_jf

19

如果有某些part上传失败,可以使用upload命令上传失败的part.

oascmd.py upload oas://oas_archive_jf /home/jale/oas_blog_code/files/ubuntu-14.04.2-desktop-i386.iso 2B5C82CCB2004034A0E6BC53E31D14E7

1a

注意:

这个时候的-p选项已经不需要了,命令会自动上传未成功上传的part。
与直接上传相同,上传结果不是实时的,因此使用oascmd.py getvaultdesc 不会有变化。
1b
经过一段时间之后(24-48小时?),OAS会更新信息到元数据库,这时就可以看到信息了:
1c

上传完成之后,使用listmpart获取已上传列表:

#uploadid 为上传时返回的MultiPartUpload IDoascmd.py listmpart oas://oas_archive_jf [uploadid]

使用fileetag命令计算文件的etag:

#大文件做etag计算需要一定时间,请耐心等待oascmd.py fileetag ubuntu-14.04.2-desktop-i386.iso

1d

执行part合并:

#uploadid是之前保存的上传id,size为文件大小,tree_etag是上一步计算所得的第二行oascmd.py completemupload oas://oas_archive_jf [uploadid] size tree_etag

注意:

执行completemupload之后上传才真正成功,与

上传相同的,oas的信息不会实时更新。

查看信息

使用createjob获取Vault信息:

oascmd.py createjob oas://oas_archive_jf#job_id由上一条命令返回oascmd.py fetch oas://oas_archive_jf [job_id] result

1e

注意:
creatjob之后会返回一个job id,我们使用这个job id来下载结果,但是这个job的执行是异步的,因此需要等待最多4个小时才能下载。

下载文件

下载文件以ubuntu-14.04.2-desktop-i386.iso为例,之前保存的Archive id为:

2EC3F10EA3DE4AD3962F5FE207AE9341605CA9936DAD791B6F3AE2E1C35798E2486B8A0B0FF7B52B404FCEAC298514472B55D196EB2A1074229C6BAA48C38F2D

首先创建一个下载的Job:

oascmd.py createjob oas://oas_archive_jf 2EC3F10EA3DE4AD3962F5FE207AE9341605CA9936DAD791B6F3AE2E1C35798E2486B8A0B0FF7B52B404FCEAC298514472B55D196EB2A1074229C6BAA48C38F2D

注意:

命令返回一个jobid,请注意保存,job执行是异步的,需要最多等待4个小时才能完成。

job完成之后,使用jobid来下载结果:

#将结果保存到本地文件resultoascmd.py fetch oas://oas_archive_jf [jobid] result

删除文件

oascmd.py rm oas://vaultname [archiveId]

删除文件操作之后并未真正删除(考虑到用户误删需要恢复),在一段时间之后才会物理删除。

总结

web控制台和命令行工具使用起来非常直观,但是无法应对大量文件的情况。另外,在使用命令行工具时一定要注意保存Archive_id、upload_id等信息,总体来说,命令行工具和控制台主要应用于文件数目少的情况,更多应该是使用这个两个工具进行测试。

官方文档内容比较完整,在使用过程中有任何出错或者不清楚的地方,可以参考官方文档。

转载地址:http://fygxx.baihongyu.com/

你可能感兴趣的文章
c# winform项目用到的部分知识点总结
查看>>
stdafx
查看>>
cuda编程知识普及
查看>>
JS声明语句提升与作用域
查看>>
非抢占式RCU实现(二),解释:为什么 RCU_NEXT_SIZE 宏值是4?
查看>>
在虚拟机的linux中利用VMware Tools实现与windows共享文件
查看>>
Windows下配置Java环境变量
查看>>
leetcode -- Candy
查看>>
几种减小javascript对性能影响的方法
查看>>
PHP常用库函数介绍+常见疑难问题解答
查看>>
ios 自定义UITableView中分组的标题sectionview
查看>>
Installing haproxy load balancing for http and https--转载
查看>>
iPhone-获取网络数据或者路径的文件名
查看>>
FORMAT格式
查看>>
启动Tomcat的时候遇到错误
查看>>
IE6,IE7浏览器下 margin 无效的解决方法
查看>>
SpringBoot读取application.properties文件
查看>>
hibernate 启动和辅助类实现资源的重复使用
查看>>
Mongodb快速入门之使用Java操作Mongodb
查看>>
js正则大扫除
查看>>