manta api
Authentication
有几个访问方法。 验证对服务的请求的主要方法是使用TLS上的HTTP签名。
在大多数情况下,您只需使用SSH私钥对HTTP Date标头的小写日期:和值进行签名; 这样做可以让你创建交互式shell函数(见下文)。 所有的请求都需要一个HTTP授权头,其中的scheme是签名。
PutDirectory (PUT /:login/stor/[:directory]/:directory)
Joyent Manta存储服务中的PutDirectory是一个幂等的创建或更新操作。 您的私有名称空间从/:login / stor开始,然后您可以在其下创建任何嵌套的目录或对象集。
要放置一个目录,只需将HTTP Request-URI设置为你要更新的路径,并将Content-Type HTTP header设置为application / json;type=directory。 没有请求或响应主体。 成功返回204的HTTP状态码。
manta /$MANTA_USER/stor/foo \
-X PUT \
-H 'content-type: application/json; type=directory'
---------------------------------------------------------------------
ListDirectory (GET /:login/stor/:directory)
列出目录的内容。 成功之后,您将收到\ n分离的JSON对象流,其中每个对象表示一个目录条目。content-type将是application / x-json-stream;type=directory。
每个对象都有一个类型字段,表示该条目是一个目录还是一个对象。 例如(为清楚起见,添加了新的行):
{
"name": "1c1bf695-230d-490e-aec7-3b11dff8ef32",
"type": "directory",
"mtime": "2012-09-11T20:28:30Z"
} {
"name": "695d5de6-45f4-4156-b6b7-3a8d4af89391",
"etag": "bdf0aa96e3bb87148be084252a059736",
"size": 44,
"type": "object",
"mtime": "2012-09-11T20:28:31Z"
}
类型字段表示每个记录的“schema”; 唯一的类型是当前的对象和目录。 两者都有一个名称(文件名),类型(已经描述)和mtime,这是上次更新时间的ISO8601时间戳。
此外,对象类型的记录具有一个大小(content-length)和etag(对于有条件的请求)。您将返回256个条目(您可以通过在查询字符串上设置限制参数选择更少或更多)。
您可以使用标记查询参数选择从哪里开始下一个列表。 您将得到result-set-size header中的记录总数。 服务按字母顺序列出对象(UTF-8归类)。
Query Parameters:
limit: limits the number of records to come back (default and max is 1000)
marker: key name at which to start the next listing
返回
JSON对象流,每个孩子一个记录。
manta /$MANTA_USER/stor/
DeleteDirectory (DELETE /:login/stor/:directory)
删除一个目录。 该目录必须是空的。 这个请求没有响应数据。 成功时返回HTTP 204;
manta /$MANTA_USER/stor/foo -X DELETE
PutObject (PUT /:login/stor/[:directory]/:object)
创建或覆盖一个对象。 您可以像在传统文件系统上一样指定对象的路径,并且父级必须是目录。 该服务将不会解释您的数据。
具体来说,这意味着你的数据被视为一个不透明的字节流,你将会收到你上传的内容。 成功时返回HTTP 204。
默认情况下,该服务将在两个不同数据中心的两台物理服务器上存储数据的两个副本; 请注意,每个物理服务器都配置了RAID-Z,
因此磁盘驱动器故障不会影响您的耐用性或可用性。 您可以使用durability-level header增加(或减少)对象的副本数量。
您应该始终指定一个Content-Type header,它将被存储并返回(HTTP content-negotiation将被处理)。 如果你没有指定,默认是application / octet-stream。
您应该指定一个Content-MD5 header; 如果你这样做, 服务将验证上传的内容匹配header的值。 即使你不包括一个,成功的回应将包括一个computed-md5 header。
这是Manta在摄取对象时计算的MD5校验和。
如果您使用HTTP条件请求语义(例如,If-Match或If-Modified-Since),则该服务能够为您提供测试/设置语义。跨源资源共享CORS headers 被保存在适当的位置;
通过发送access-control-allow-origin中的值列表来支持预先发送的请求。默认情况下,该服务将存储您的对象的2个副本; 这可以通过durability-level header来改变。
请注意,如果您使用的是“流传输上传”(传输编码分块),则要么控制服务中的默认对象大小(5Gb),要么通过覆盖 HTTP header max-content-length来“猜测”对象的大小 。
无论哪种方式,该服务将跟踪_actually_发送和记录的字节数。 随后的GET请求将返回实际的长度。 如果您不是流媒体,只需设置内容长度(正常情况下)即可。
最后,你可以用自己的对象存储自定义headers(例如 "tags"),前缀为m-。 因此,例如,包含头文件m-local-user:foo和一个对象将允许你跟踪创建此对象的应用的某个本地用户。
您最多可以使用4 Kb的header数据。
manta /$MANTA_USER/stor/foo.json -X PUT -H 'content-type: application/json' \
-d '{"hello": "world"}'
PutMetadata (PUT /:login/stor/[:directory]/:object?metadata=true)
PutMetadata允许您覆盖已经存在的对象的HTTP标头,而不用改变数据。 请注意,这是一个幂等的“替换”操作,所以您必须指定要在每个请求上存储的完整HTTP标头集合。
您不能更改“关键”标题:
- Content-Length
- Content-MD5
- Durability-Level
manta /$MANTA_USER/stor/foo.json?metadata=true -X PUT \
-H 'content-type: application/json'
GetObject (GET /:login/stor/[:directory]/:object)
从服务中检索一个对象。 一旦成功,HTTP 200将与您的内容和元数据(HTTP标头)一起返回。
manta /$MANTA_USER/stor/foo.json
DeleteObject (DELETE /:login/stor/[:directory]/:object)
从服务中删除一个对象。 成功时返回HTTP 204。
manta /$MANTA_USER/stor/foo.json -X DELETE
manta api的更多相关文章
- 干货来袭-整套完整安全的API接口解决方案
在各种手机APP泛滥的现在,背后都有同样泛滥的API接口在支撑,其中鱼龙混杂,直接裸奔的WEB API大量存在,安全性令人堪优 在以前WEB API概念没有很普及的时候,都采用自已定义的接口和结构,对 ...
- 12306官方火车票Api接口
2017,现在已进入春运期间,真的是一票难求,深有体会.各种购票抢票软件应运而生,也有购买加速包提高抢票几率,可以理解为变相的黄牛.对于技术人员,虽然写一个抢票软件还是比较难的,但是还是简单看看123 ...
- 几个有趣的WEB设备API(二)
浏览器和设备之间还有很多有趣的接口, 1.屏幕朝向接口 浏览器有两种方法来监听屏幕朝向,看是横屏还是竖屏. (1)使用css媒体查询的方法 /* 竖屏 */ @media screen and (or ...
- html5 canvas常用api总结(三)--图像变换API
canvas的图像变换api,可以帮助我们更加方便的绘画出一些酷炫的效果,也可以用来制作动画.接下来将总结一下canvas的变换方法,文末有一个例子来更加深刻的了解和利用这几个api. 1.画布旋转a ...
- JavaScript 对数据处理的5个API
JavaScript对数据处理包括向上取整.向下取整.四舍五入.固定精度和固定长度5种方式,分别对应ceil,floor,round,toFixed,toPrecision等5个API,本文将对这5个 ...
- ES5对Array增强的9个API
为了更方便的对Array进行操作,ES5规范在Array的原型上新增了9个方法,分别是forEach.filter.map.reduce.reduceRight.some.every.indexOf ...
- javascript的api设计原则
前言 本篇博文来自一次公司内部的前端分享,从多个方面讨论了在设计接口时遵循的原则,总共包含了七个大块.系卤煮自己总结的一些经验和教训.本篇博文同时也参考了其他一些文章,相关地址会在后面贴出来.很难做到 ...
- 一百元的智能家居——Asp.Net Mvc Api+讯飞语音+Android+Arduino
大半夜的,先说些废话提提神 如今智能家居已经不再停留在概念阶段,高大上的科技公司都已经推出了自己的部分或全套的智能家居解决方案,不过就目前的现状而言,大多还停留在展厅阶段,还没有广泛的推广起来,有人说 ...
- 在一个空ASP.NET Web项目上创建一个ASP.NET Web API 2.0应用
由于ASP.NET Web API具有与ASP.NET MVC类似的编程方式,再加上目前市面上专门介绍ASP.NET Web API 的书籍少之又少(我们看到的相关内容往往是某本介绍ASP.NET M ...
随机推荐
- SEO方案
前端需要注意哪些SEO 合理的title.description.keywords:搜索对着三项的权重逐个减小,title值强调重点即可,重要关键词出现不要超过2次,而且要靠前,不同页面title要有 ...
- Codeforces Round #249 (Div. 2)-D
这场的c实在不想做,sad. D: 标记一下每个点8个方向不经过黑点最多能到达多少个黑点. 由题意可知.三角形都是等腰三角形,那么我们就枚举三角形的顶点. 对于每个定点.有8个方向能够放三角形. 然后 ...
- 基于Oracle的EntityFramework的WEBAPI2的实现(四)——自动生成在线帮助文档
打开我们项目中的Area文件夹,正常情况下,我们会发现已经有了一个名字叫做[HelpPage]的区域(Area),这个区域是vs帮助我们自动建立的,它是一个mvc(不是webapi),它有普通的Con ...
- Web API 路由访问设置
前段时间一直致力于MVC webapi 技术的研究,中途也遇到过好多阻碍,特别是api路由的设置和URL的访问形式,所以针对这个问题,特意做出了记录,以供日后有同样困惑的大虾们借鉴: 在Mvc WEB ...
- 【转】JMeter 通过 JDBC 访问 Oracle 和 MySQL
JMeter 的手册中描述了如何访问 MySQL,但是没有说明如何访问 Oracle.对于没有 Java 应用开发经验和对 Oracle 不是特别熟悉的朋友,可以参考这篇文章来简单.快速的配置好 JM ...
- java代码------实现从控制台输入整型,
总结:主要是方法的调用不能错,比如浮点型,整型,字节型,so.on int ====hasNextInt() float--------hasNextfloat() short ====hasNext ...
- python的可变数据类型和不可变类型
python里面一切皆对象 ython的每个对象都分为可变类型和不可变类型 整形,浮点型,字符串,元组属于不可变类型,列表,字典是可变类型 不可变数据类型 对不可变类型的变量重新赋值,实际上是重新创建 ...
- oracle用户解锁
创建一个概要文件 create profile frank_profile limit SESSIONS_PER_USER 5 IDLE_TIME 2 FAILED_LOGIN_ ...
- wget 技巧
最近用到一个命令wget,有一个技巧分享一下. [root@py ~]# wget -m -k http://www.example.com 可以将示例网站整个打包,作为本地镜像.
- OD 实验(二) - 绕过序列号验证
需要破解的程序 输入用户名和序列号,点击 Check,程序会进行校验 用 OD 打开程序 按快捷键 Ctrl+F9 跟随表达式 GetDlgItemTextA 点击 ok 在这里调用了 GetDlgI ...