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. Mac上获取文件md5 值

    mac 上获取一个文件的md5值如下 在terminal 上输入下面命令行即可: 方法一: //备注 AccountPassword/check 是全路径 也可以相对路径,我这里是相对路径,用来测试用 ...

  2. 随机生成国内ip

    function rand_ip(){ $ip_long = array( array('607649792', '608174079'), //36.56.0.0-36.63.255.255 arr ...

  3. 异常:java.lang.IllegalArgumentException: Control character in cookie value or attribute.

    后台提示: 严重: Error processing requestjava.lang.IllegalArgumentException: Control character in cookie va ...

  4. 性能指标术语&理发店模型

    2015-11-26 09:13:53 响应时间 响应时间=呈现时间+系统响应时间 呈现时间取决于数据在被客户端收后到呈现出页面所消耗的时间: 系统响应时间指应用系统从请求发出开始到客户端接收到数据所 ...

  5. FastAdmin 无刷新地址改变

    FastAdmin 无刷新地址改变 群里有人问 FastAdmin 是不是用了 pjax? 之前有看到 Karson 回复过,其实 FastAdmin 用的是 HTML5 的一个History API ...

  6. 在ng中的select的使用方法的讲解

    项目中我们可能会使用到条件过滤选择框之类的东西,最简单的就是input.select. 关于select的使用我们通常会需要从数据库中返回数据进行动态绑定. 此时我们会有两种方式: 1)使用ng-re ...

  7. strcpy手写——面试

    #include<stdio.h> #include<string.h> ]={]; char* strcpy(char *to,char *from){ if(NULL==t ...

  8. vs2015安装ORACLE的DbFirst

    不说DbFirst好在哪里,它和ModelFirst,CodeFirst都各有各的好,由于对于已经存在的一个大型的业务库,使用EntityFramework的更倾向于DbFirst,因为好多同事已经习 ...

  9. Unit06: Spring对JDBC的 整合支持 、 Spring+JDBC Template、Spring异常处理

    Unit06: Spring对JDBC的 整合支持 . Spring+JDBC Template .Spring异常处理 1. springmvc提供的异常处理机制 我们可以将异常抛给spring框架 ...

  10. springMvc架构简介

    什么是spring 关于spring的定义无论是从官方还是市面上已经很多能够清晰明了的做出解释了.我姑且简单定义它为一个轻量级的控制反转(IoC)和面向切面(AOP)的容器,Java 开发框架,至于控 ...