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的更多相关文章

  1. 干货来袭-整套完整安全的API接口解决方案

    在各种手机APP泛滥的现在,背后都有同样泛滥的API接口在支撑,其中鱼龙混杂,直接裸奔的WEB API大量存在,安全性令人堪优 在以前WEB API概念没有很普及的时候,都采用自已定义的接口和结构,对 ...

  2. 12306官方火车票Api接口

    2017,现在已进入春运期间,真的是一票难求,深有体会.各种购票抢票软件应运而生,也有购买加速包提高抢票几率,可以理解为变相的黄牛.对于技术人员,虽然写一个抢票软件还是比较难的,但是还是简单看看123 ...

  3. 几个有趣的WEB设备API(二)

    浏览器和设备之间还有很多有趣的接口, 1.屏幕朝向接口 浏览器有两种方法来监听屏幕朝向,看是横屏还是竖屏. (1)使用css媒体查询的方法 /* 竖屏 */ @media screen and (or ...

  4. html5 canvas常用api总结(三)--图像变换API

    canvas的图像变换api,可以帮助我们更加方便的绘画出一些酷炫的效果,也可以用来制作动画.接下来将总结一下canvas的变换方法,文末有一个例子来更加深刻的了解和利用这几个api. 1.画布旋转a ...

  5. JavaScript 对数据处理的5个API

    JavaScript对数据处理包括向上取整.向下取整.四舍五入.固定精度和固定长度5种方式,分别对应ceil,floor,round,toFixed,toPrecision等5个API,本文将对这5个 ...

  6. ES5对Array增强的9个API

    为了更方便的对Array进行操作,ES5规范在Array的原型上新增了9个方法,分别是forEach.filter.map.reduce.reduceRight.some.every.indexOf ...

  7. javascript的api设计原则

    前言 本篇博文来自一次公司内部的前端分享,从多个方面讨论了在设计接口时遵循的原则,总共包含了七个大块.系卤煮自己总结的一些经验和教训.本篇博文同时也参考了其他一些文章,相关地址会在后面贴出来.很难做到 ...

  8. 一百元的智能家居——Asp.Net Mvc Api+讯飞语音+Android+Arduino

    大半夜的,先说些废话提提神 如今智能家居已经不再停留在概念阶段,高大上的科技公司都已经推出了自己的部分或全套的智能家居解决方案,不过就目前的现状而言,大多还停留在展厅阶段,还没有广泛的推广起来,有人说 ...

  9. 在一个空ASP.NET Web项目上创建一个ASP.NET Web API 2.0应用

    由于ASP.NET Web API具有与ASP.NET MVC类似的编程方式,再加上目前市面上专门介绍ASP.NET Web API 的书籍少之又少(我们看到的相关内容往往是某本介绍ASP.NET M ...

随机推荐

  1. .NET类库

    1.如何让发布的C#的DLL类库中的方法带有注释说明 一个类库让第三方引用时,默认情况下生成类库时不携带注释,所以别人引用这个类库时就不是很方便理解类方法的作用和每个参数的含义,若是能携带方法的说明注 ...

  2. SEO方案

    前端需要注意哪些SEO 合理的title.description.keywords:搜索对着三项的权重逐个减小,title值强调重点即可,重要关键词出现不要超过2次,而且要靠前,不同页面title要有 ...

  3. mui 拨打电话

    function callPhone() { let btnArray = ['拨打', '取消']; let Phone = "10086"; mui.confirm('是否拨打 ...

  4. springboot注册bean失败

    启动的主类应该放在和其他包一样的目录,不能放在一个目录里面

  5. IIS6自带FTP安装及配置方法

    参考:http://v.huweishen.com/video/9.html ·IIS自带的FTP服务是最安全的,不会像Serv-U那样存在各种漏洞:但其配置过程也比较复杂. ·本节将以虚拟目录方式, ...

  6. 【转】使用JMeter做性能测试的心得

    企业应用开发过程中,性能测试是很重要的一个环节,在这个环节中Apache的JMeter以它开源.100%纯Java.操作方便等优点发挥着很大的作用. 经过一段时间的使用,多少有些心得和技巧,拿出来共享 ...

  7. 怎样用java生成GUID与UUID

    GUID是一个128位长的数字,一般用16进制表示.算法的核心思想是结合机器的网卡.当地时间.一个随机数来生成GUID.从理论上讲,如果一台机器每秒产生10000000个GUID,则可以保证(概率意义 ...

  8. 杂项:HTML5-3/3-技术要点

    ylbtech-杂项:HTML5-3/3-技术要点   1.返回顶部 1. 重要标记 <video>标记 定义和用法: </video> 标签定义视频,比如电影片段或其他视频流 ...

  9. Oracle清理大表,降水位

    背景:一张表的清理机制存在问题,导致该表的数据一直在增加,该表水位已很高,需要对该表的数据进行清理并降水位. 1.1 迁移前准备 步骤一.新建表 p_transaction_bak. oracle@l ...

  10. 安装FreePBX的ISO版本

    下载地址:http://schmoozecom.com/distro-download.php 这个相当于系统了,第一步:安装程序会提示选择你想安装Asterisk的版本:现在出现了11版本,这个根据 ...