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

简介:

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

[TOC]

使用需求

10

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

控制台的使用

使用参考官方文档中的控制台使用

命令行工具的使用

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

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

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

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

安装成功可以这样进行验证:
11
然后再验证Python SDK是否安装正确:
12
没有异常表示正确安装。

根据授权设置进行授权配置:

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


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

测试一下

oascmd.py ls

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

新建Vault

为了测试,新建一个Vault。

oascmd.py createvault oas://oas_archive_jf


可以看到,名为“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.jpg
oascmd.py upload oas://oas_archive_jf matplotlib-1.4.3.tar

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

大文件上传

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

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

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

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

oascmd.py listmupload oas://oas_archive_jf

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

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

注意:
这个时候的-p选项已经不需要了,命令会自动上传未成功上传的part。
与直接上传相同,上传结果不是实时的,因此使用oascmd.py getvaultdesc 不会有变化。

经过一段时间之后(24-48小时?),OAS会更新信息到元数据库,这时就可以看到信息了:

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

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

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

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

执行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


注意:
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来下载结果:

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

删除文件

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

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

总结

web控制台和命令行工具使用起来非常直观,但是无法应对大量文件的情况。另外,在使用命令行工具时一定要注意保存Archive_id、upload_id等信息,总体来说,命令行工具和控制台主要应用于文件数目少的情况,更多应该是使用这个两个工具进行测试。
官方文档内容比较完整,在使用过程中有任何出错或者不清楚的地方,可以参考官方文档。

目录
相关文章
|
资源调度 分布式计算 安全
伏羲—阿里云分布式调度系统
在12月12日的云栖社区在线培训上,“飞天”分布式系统核心开发人员陶阳宇分享了《伏羲-阿里云分布式调度系统》。他主要从伏羲系统架构、任务调度、资源调度、容错机制、规模挑战、安全与性能隔离方面介绍了伏羲分布式系统架构和设计理念。
22861 0
|
SQL 数据处理 数据库管理
如何在 SQL Server 中使用 LEFT
【8月更文挑战第9天】
631 2
如何在 SQL Server 中使用 LEFT
|
11月前
|
数据采集 Python
数据爬取技术进阶:从表单提交到页面点击的实现
本文介绍了如何使用 Python 和代理 IP 技术,从表单提交到页面点击,实现动态网页的数据爬取。以百度贴吧为例,详细讲解了登录、发帖和数据采集的实现流程,并提供了完整的代码示例。通过代理 IP 确保数据获取的稳定性和安全性。
369 3
|
SQL 安全 数据库
|
9月前
|
Java Go 开发者
2023年终总结-一名23届毕业生的风雨秋招路
人生如巧克力,充满未知。23届大学生经历网课、封校后迎来秋招寒冬,笔者投递三百多家公司,最终收到三个Offer。签约中厂后,享受短暂的轻松时光。热爱编程,参加字节青训营,获技术提升与人脉积累。毕业旅行至云南时突遇毁约,但家人支持下继续前行。重新求职后选择深圳工作,入职半年收获良多。展望2024,立下多个目标,愿新的一年实现愿望。
145 4
|
数据可视化 安全 API
资源访问管理(RAM)
资源访问管理(RAM)
719 2
|
存储 缓存 安全
Linux 设备驱动程序(三)(下)
Linux 设备驱动程序(三)
150 0
|
云安全 域名解析 SQL
什么是云盾Web应用防火墙?阿里云服务器如何接入云盾Web应用防火墙?
本文介绍了阿里云 云盾Web应用防火墙是什么以及云服务器如何接入云盾Web应用防火墙。
1276 0
什么是云盾Web应用防火墙?阿里云服务器如何接入云盾Web应用防火墙?
|
人工智能 算法
AIGC对医疗健康行业的深远影响
【1月更文挑战第21天】AIGC对医疗健康行业的深远影响
762 2
AIGC对医疗健康行业的深远影响
|
机器学习/深度学习 人工智能 自然语言处理
AIGC的技术架构
【1月更文挑战第18天】AIGC的技术架构
1003 1
AIGC的技术架构