概述

新浪云存储服务主要提供以下三类API:

Service操作

Bucket操作

Object操作

与此同时,为提高用户使用的安全性,新浪云存储服务还通过使用签名来验证请求者的身份。

如需了解签名算法的详细信息,请参考《签名算法》。

如需了解ACL的详细信息,请参考《ACL》。

如涉及Bucket和Object的命名规划,请参考《约束与限制》。

注意:以下接口中所使用的示例都是在需要使用签名情况下;如果相关访问资源已设置为可匿名(所有用户)访问,则可不带签名。

API域名列表:

域名

功能

sinacloud.net

上传、下载、全部的接口调用

首选

cdn.sinacloud.net

cdn下载加速,只用于下载

下载

up.sinacloud.net

cdn上传加速,只用于上传

上传

Service操作

GET Service (List Buckets)

描述:

获得当前Owner下所有Bucket的列表。

请求格式:

GET /?formatter=json HTTP/1.1

Host: sinacloud.net

Date:

Authorization: #请参照《签名算法》

响应格式(HTTP Body):

{

"Owner": {

"ID": "SINA0000001234567890"

},

"Buckets": [

{

"ConsumedBytes": 13243241,

"CreationDate": "Fri, 21 Mar 2014 01:13:42 UTC",

"Name": "bucket_name_0"

},

{

"ConsumedBytes": 4323,

"CreationDate": "Fri, 12 Mar 2013 02:25:22 UTC",

"Name": "bucket_name_1"

},

...

]

}

返回值说明:

Name

Description

Owner

所有者

Owner.ID

所有者的UserId

Buckets

Buckets列表,下一级为数组

Buckets.Name

Bucket名称

Buckets.ConsumedBytes

当前Bucket已占用空间

Buckets.CreationDate

当前Bucket创建时间

请求示例:

curl -v -H "Date: Sat, 20 Nov 2286 17:46:39 GMT" -H "Authorization: SINA :" "http://sinacloud.net/?formatter=json"

或者

curl -v "http://sinacloud.net/?KID=sina,&Expires=1398873316&ssig=&formatter=json"

响应示例:

HTTP/1.1 200 OK

Date: Tue, 08 Apr 2014 02:59:47 GMT

Content-Type: application/json

Transfer-Encoding: chunked

Connection: keep-alive

X-RequestId: 00078d50-1404-0810-5947-782bcb10b128

X-Requester: Your UserId

{

"Owner": {

"ID": "SINA0000001234567890"

},

"Buckets": [

{

"ConsumedBytes": 13243241,

"CreationDate": "Fri, 21 Mar 2014 01:13:42 UTC",

"Name": "bucket_name_0"

},

{

"ConsumedBytes": 4323,

"CreationDate": "Fri, 12 Mar 2013 02:25:22 UTC",

"Name": "bucket_name_1"

},

...

]

}

Bucket操作

GET Bucket (List Objects)

描述:

获取bucket下所有object。

请求格式:

GET /?formatter=json HTTP/1.1

Host: .sinacloud.net

Date:

Authorization: #请参照《签名算法》

或者

GET //?formatter=json HTTP/1.1

Host: sinacloud.net

Date:

Authorization: #请参照《签名算法》

请求参数:

Parameter

Description

Required

delimiter

折叠显示字符。通常使用:‘/’

No

marker

Key的初始位置,系统将列出比Key大的值,通常用作‘分页’的场景

No

max-keys

返回值的最大Key的数量。默认为400

No

prefix

列出以指定字符为开头的Key

No

响应格式举例(HTTP Body):

{

Delimiter: "/",

Prefix: "html/",

CommonPrefixes: [

{

Prefix: "html/assets/"

},

{

Prefix: "html/attributions/"

},

{

Prefix: "html/documentation/"

},

...

],

Marker: null,

ContentsQuantity: 5,

CommonPrefixesQuantity: 3,

NextMarker: null,

IsTruncated: false,

Contents: [

{

SHA1: "9fc710aa89efbe42020b0310d16a07449bf06131",

Name: "html/coming-soon.html",

Expiration-Time: null,

Last-Modified: "Fri, 21 Mar 2014 01:50:46 UTC",

Owner: "SINA0000000000000001",

MD5: "934d922cac80449ee361cefeb3276b3e",

Content-Type: "text/html",

Size: 8781

},

{

SHA1: "a9625a128263f05e331f6d78add9bd15911c3565",

Name: "html/ebook.html",

Expiration-Time: null,

Last-Modified: "Fri, 21 Mar 2014 01:50:47 UTC",

Owner: "SINA0000000000000001",

MD5: "cb7ed943ead4aeb513aa8c0b76865a8b",

Content-Type: "text/html",

Size: 18734

},

...

]

}

返回值说明:

Name

Description

Contents

Object的Metadata数组

CommonPrefixes

折叠以后的Prefix,下一级是Prefix数组

Delimiter

当前使用的折叠字符

Prefix

当前使用的前缀

Marker

当前使用的Marker

ContentsQuantity

Contents中元素个数

CommonPrefixesQuantity

CommonPrefixes中元素个数

NextMarker

下一页的Marker

IsTruncated

是否还有下一页

SHA1

文件内容的sha1值

Name

Object的Key(文件名)

Last-Modified

Object的最后修改时间

Owner

Object的拥有者

MD5

文件内容的md5值

Content-Type

文件的mime type

Size

文件的大小(字节)

应用举例:

假设某Bucket下有如下文件(为方便说明,没有显示为json格式,仅表现其中的一些有用信息,以下同):

join/mailaddresss.txt

join/mycodelist.txt

join/personalfiles/connects.docx

join/personalfiles/myphoto.jpg

join/readme.txt

join/userlist.txt

join/zero.txt

mary/personalfiles/mary.jpg

mary/readme.txt

sai/readme.txt

使用prefix指定以join/为开头的文件:

GET /?prefix=join/&formatter=json HTTP/1.1

Host: .sinacloud.net

Date:

Authorization: #请参照《签名算法》

返回:

Contents:

join/mailaddresss.txt

join/mycodelist.txt

join/personalfiles/connects.docx

join/personalfiles/myphoto.jpg

join/readme.txt

join/userlist.txt

join/zero.txt

使用delimiter指定折叠方式为‘/’:

GET /?delimiter=/&formatter=json HTTP/1.1

Host: .sinacloud.net

Date:

Authorization: #请参照《签名算法》

返回:

Contents:

CommonPrefix:

join

mary

sai

使用prefix指定以join/为开头的文件,同时使用delimiter指定折叠方式为‘/’:

GET /?prefix=join/&delimiter=/&formatter=json HTTP/1.1

Host: .sinacloud.net

Date:

Authorization: #请参照《签名算法》

返回:

Contents:

join/mailaddresss.txt

join/mycodelist.txt

join/readme.txt

join/userlist.txt

join/zero.txt

CommonPrefix:

join/personalfiles/

使用max-keys做最大值列表长度限制:

GET /?prefix=join/&delimiter=/&max-keys=4&formatter=json HTTP/1.1

Host: .sinacloud.net

Date:

Authorization: #请参照《签名算法》

返回:

IsTruncated : true

Next-Marker : join/userlist.txt

Contents:

join/mailaddresss.txt

join/mycodelist.txt

join/readme.txt

CommonPrefix:

join/personalfiles/

使用marker继续获得之前的列操作的后续结果:

GET /?prefix=join/&delimiter=/&max-keys=4&marker=join/userlist.txt&formatter=json HTTP/1.1

Host: .sinacloud.net

Date:

Authorization: #请参照《签名算法》

返回:

IsTruncated : false

Contents:

join/userlist.txt

join/zero.txt

GET Bucket - Meta

描述:

获取一个Bucket的meta信息。

请求格式:

GET /?meta&formatter=json HTTP/1.1

Host: .sinacloud.net

Date:

Authorization: #请参照《签名算法》

响应:

HTTP/1.1 200 OK

Date: Tue, 08 Apr 2014 02:59:47 GMT

Connection: keep-alive

Content-Length: 1234

Content-Type: application/json

X-RequestId: 00078d50-1404-0810-5947-782bcb10b128

X-Requester: Your UserId

{

DeleteQuantity: 71,

Capacity: 2843723,

ACL: {

GRPS000000ANONYMOUSE: ["read"],

GRPS0000000CANONICAL: [ ],

SINA0000001001HBK3UT: ["read", "write", "read_acp", "write_acp"]

},

ProjectID: 4241,

DownloadQuantity: 93,

DownloadCapacity: 27365564,

CapacityC: 0,

QuantityC: 0,

Project: "Your-Bucket-Name",

UploadCapacity: 9112891,

UploadQuantity: 80,

Last-Modified: "Wed, 16 Apr 2014 13:49:38 UTC",

SizeC: 0,

Owner: "SINA0000001001HBK3UT",

DeleteCapacity: 6269168,

Quantity: 9

}

请求示例:

curl -v -H "Date: Sat, 20 Nov 2286 17:46:39 GMT" -H "Authorization: SINA :" "http://.sinacloud.net/?meta&formatter=json"

PUT Bucket

描述:

创建一个Bucket。

请求格式:

PUT /?formatter=json HTTP/1.1

Host: .sinacloud.net

Date:

Authorization: #请参照《签名算法》

x-amz-acl: #请参照《ACL》

或者

PUT //?formatter=json HTTP/1.1

Host: sinacloud.net

Date:

Authorization: #请参照《签名算法》

x-amz-acl: #请参照《ACL》

Request Header(请求头):

Name

Description

Required

x-amz-acl

创建Bucket的同时,快速设置一个Canned-ACL。请参照:《ACL》

No

响应(无HTTP Body):

HTTP/1.1 200 OK

Date: Tue, 08 Apr 2014 02:59:47 GMT

Content-Length: 0

Connection: keep-alive

X-RequestId: 00078d50-1404-0810-5947-782bcb10b128

X-Requester: Your UserId

请求示例:

curl -v -X PUT -H "Date: Sat, 20 Nov 2286 17:46:39 GMT" -H "Authorization: SINA :" "http://.sinacloud.net/?formatter=json"

或者

curl -v -X PUT "http://.sinacloud.net/?KID=sina,&Expires=1398873316&ssig=&formatter=json"

或者

curl -v -X PUT "http://sinacloud.net//?KID=sina,&Expires=1398873316&ssig=&formatter=json"

DELETE Bucket

描述:

删除指定Bucket。

注意:不能删除非空Bucket。

请求格式:

DELETE /?formatter=json HTTP/1.1

Host: .sinacloud.net

Date:

Authorization: #请参照《签名算法》

或者

DELETE //?formatter=json HTTP/1.1

Host: sinacloud.net

Date:

Authorization: #请参照《签名算法》

响应(无HTTP Body):

HTTP/1.1 204 No Content

Date: Tue, 08 Apr 2014 02:59:47 GMT

Content-Length: 0

Connection: keep-alive

X-RequestId: 00078d50-1404-0810-5947-782bcb10b128

X-Requester: Your UserId

请求示例:

curl -v -X DELETE -H "Date: Sat, 20 Nov 2286 17:46:39 GMT" -H "Authorization: SINA :" "http://.sinacloud.net/?formatter=json"

或者

curl -v -X DELETE "http://.sinacloud.net/?KID=sina,&Expires=1398873316&ssig=&formatter=json"

或者

curl -v -X DELETE "http://sinacloud.net//?KID=sina,&Expires=1398873316&ssig=&formatter=json"

GET Bucket ACL

描述:

获得指定Bucket的ACL信息。更多信息请参照:《ACL》

请求格式:

GET /?acl&formatter=json HTTP/1.1

Host: .sinacloud.net

Date:

Authorization: #请参照《签名算法》

或者

GET //?acl&formatter=json HTTP/1.1

Host: sinacloud.net

Date:

Authorization: #请参照《签名算法》

响应:

HTTP/1.1 200 OK

Date: Tue, 08 Apr 2014 02:59:47 GMT

Content-Length: 123

Connection: keep-alive

X-RequestId: 00078d50-1404-0810-5947-782bcb10b128

X-Requester: Your UserId

{

"Owner": "SINA0000000000000001",

"ACL": {

"GRPS000000ANONYMOUSE": [

"read"

],

"SINA0000001001NHT3M7": [

"read",

"write",

"read_acp",

"write_acp"

],

"SINA0000000000000001": [

"read",

"write",

"read_acp",

"write_acp"

],

"SINA0000001001HBK3UT": [

"read",

"write",

"read_acp",

"write_acp"

],

"GRPS0000000CANONICAL": [

"read",

"write",

"read_acp",

"write_acp"

],

...

}

}

响应格式说明请参照:《ACL》

请求示例:

curl -v -H "Date: Sat, 20 Nov 2286 17:46:39 GMT" -H "Authorization: SINA :" "http://.sinacloud.net/?acl&formatter=json"

或者

curl -v "http://.sinacloud.net/?acl&KID=sina,&Expires=1398873316&ssig=&formatter=json"

或者

curl -v "http://sinacloud.net//?acl&KID=sina,&Expires=1398873316&ssig=&formatter=json"

PUT Bucket ACL

描述:

给指定Bucket设置ACL规则。更多信息请参照:《ACL》

请求格式:

PUT /?acl&formatter=json HTTP/1.1

Host: .sinacloud.net

Date:

Authorization: #请参照《签名算法》

#ACL规则

{

'SINA0000000000000001' : [ "read", "read_acp" , "write", "write_acp" ],

'GRPS000000ANONYMOUSE' : [ "read", "read_acp" , "write", "write_acp" ],

'GRPS0000000CANONICAL' : [ "read", "read_acp" , "write", "write_acp" ],

}

响应(无HTTP Body):

HTTP/1.1 200 OK

Date: Tue, 08 Apr 2014 02:59:47 GMT

Connection: keep-alive

X-RequestId: 00078d50-1404-0810-5947-782bcb10b128

X-Requester: Your UserId

请求格式说明请参照:《ACL》

请求示例:

curl -v -T "acl.txt" -H "Date: Sat, 20 Nov 2286 17:46:39 GMT" -H "Authorization: SINA :" "http://.sinacloud.net/?acl&formatter=json"

Object操作

HEAD Object

描述:

使用HEAD请求方式获取Object的Metadata。

请求格式:

HEAD /?formatter=json HTTP/1.1

Host: .sinacloud.net

Date:

Authorization: #请参照《签名算法》

响应(无HTTP Body):

HTTP/1.1 200 OK

Date: Tue, 08 Apr 2014 02:59:47 GMT

Connection: keep-alive

Content-Type:

Content-Length:

ETag: ""

Last-Modified:

X-RequestId: 00078d50-1404-0810-5947-782bcb10b128

X-Requester: Your UserId

x-amz-meta-foo1: #自定义meta:foo1

x-amz-meta-foo2: #自定义meta:foo2

标准Request Headers(请求头):

Name

Description

Required

Range

Downloads the specified range bytes of an object. For more information about the HTTP Range header, go to http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.

• Type: String

• Default: None

• Constraints: None

No

If-Modified-Since

Return the object only if it has been modified since the specified time, otherwise return a 304 (not modified).

• Type: String

• Default: None

• Constraints: None

No

If-Unmodified-Since

Return the object only if it has not been modified since the specified time, otherwise return a 412 (precondition failed).

• Type: String

• Default: None

• Constraints: None

No

If-Match

Return the object only if its entity tag (ETag) is the same as the one specified; otherwise, return a 412 (precondition failed).

• Type: String

• Default: None

• Constraints: None

No

If-None-Match

Return the object only if its entity tag (ETag) is different from the one specified; otherwise, return a 304 (not modified).

• Type: String

• Default: None

• Constraints: None

No

Response Headers(响应头):

Name

Description

Content-Type

Object的mime-type

Content-Length

Object的Size(bytes)

ETag

Object的hash值,一般是md5值

Last-Modified

Object的最后修改时间

x-amz-meta-*

用户可自定义文件属性信息,读取时原值返回。

例如:

x-amz-meta-UploadLocation: My Home

X-amz-meta-ReviewedBy: test@test.net

X-amz-meta-FileChecksum: 0x02661779

X-amz-meta-CheckSumAlgorithm: crc32

x-amz-meta-crc32

Object的CRC32值

请求示例:

curl -v -X HEAD -H "Date: Sat, 20 Nov 2286 17:46:39 GMT" -H "Authorization: SINA :" "http://.sinacloud.net/?formatter=json"

GET Object

描述:

获取一个Object(下载)。

请求格式:

GET /?formatter=json HTTP/1.1

Host: .sinacloud.net

Date:

Authorization: #请参照《签名算法》

Range: bytes= #支持断点下载

响应:

HTTP/1.1 200 OK

Date: Tue, 08 Apr 2014 02:59:47 GMT

Connection: keep-alive

Content-Type:

Content-Length:

ETag: ""

Last-Modified:

X-RequestId: 00078d50-1404-0810-5947-782bcb10b128

X-Requester: Your UserId

x-amz-meta-foo1: #自定义meta:foo1

x-amz-meta-foo2: #自定义meta:foo2

#文件内容

标准Request Headers(请求头):

Name

Description

Required

Range

Downloads the specified range bytes of an object. For more information about the HTTP Range header, go to http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.

• Type: String

• Default: None

• Constraints: None

No

If-Modified-Since

Return the object only if it has been modified since the specified time, otherwise return a 304 (not modified).

• Type: String

• Default: None

• Constraints: None

No

If-Unmodified-Since

Return the object only if it has not been modified since the specified time, otherwise return a 412 (precondition failed).

• Type: String

• Default: None

• Constraints: None

No

If-Match

Return the object only if its entity tag (ETag) is the same as the one specified; otherwise, return a 412 (precondition failed).

• Type: String

• Default: None

• Constraints: None

No

If-None-Match

Return the object only if its entity tag (ETag) is different from the one specified; otherwise, return a 304 (not modified).

• Type: String

• Default: None

• Constraints: None

No

Response Headers(响应头):

Name

Description

Content-Type

Object的mime-type

Content-Length

Object的Size(bytes)

ETag

Object的hash值,一般是md5值

Last-Modified

Object的最后修改时间

x-amz-meta-*

用户可自定义文件属性信息,读取时原值返回。

例如:

x-amz-meta-UploadLocation: My Home

X-amz-meta-ReviewedBy: test@test.net

X-amz-meta-FileChecksum: 0x02661779

X-amz-meta-CheckSumAlgorithm: crc32

x-amz-meta-crc32

Object的CRC32值

请求示例:

curl -v -H "Range: bytes=0-1024" -H "Date: Sat, 20 Nov 2286 17:46:39 GMT" -H "Authorization: SINA :" "http://.sinacloud.net/?formatter=json"

应用举例:

标准示例:

GET /my_bucket/path/to/my/file.txt?formatter=json HTTP/1.1

Host: sinacloud.net

Date: Sun, 1 Jan 2006 12:00:00 GMT

Authorization: SINA AccessKey:ssig

Range: bytes=100-2048

响应:

HTTP/1.1 206 Partial Content

x-amz-id-2: id

x-amz-request-id: request_id

Date: date

Last-Modified: Sun, 1 Jan 2006 12:00:00 GMT

ETag: "etag"

Content-Length: length

Content-Type: type

Connection: close

Server: SinaS3

x-amz-meta-foo: foo_value

...

file_content

...

使用各种验证措施的下载方式:

GET /path/to/my/file.txt?KID=sae,youraccount&Expires=1175139620&ssig=your_ssig&ip=time,ipaddress&fn=filename.txt&formatter=json HTTP/1.1

Host: my_bucket.sinacloud.net

Date: date

Range: bytes=byte_range

响应:

HTTP/1.1 206 Partial Content

x-amz-id-2: id

x-amz-request-id: request_id

Date: date

Last-Modified: Sun, 1 Jan 2006 12:00:00 GMT

ETag: "etag"

Content-Length: length

Content-Type: type

Connection: close

Server: SinaS3

x-amz-meta-foo: foo_value

...

file_content

...

以上示例中QueryString的含义请参照《签名算法》中的关于 #认证方式# 的说明。

PUT Object

描述:

PUT方式上传一个文件(同时可以设置meta和acl)。

请求格式:

PUT /?formatter=json HTTP/1.1

Host: .sinacloud.net

Date:

Content-Length:

Content-Type:

Authorization: #请参照《签名算法》

[object data]

响应:

HTTP/1.1 200 OK

Date: Tue, 08 Apr 2014 02:59:47 GMT

Connection: keep-alive

Content-Length: 0

ETag: ""

X-RequestId: 00078d50-1404-0810-5947-782bcb10b128

X-Requester: Your UserId

Request Headers(请求头):

Name

Description

Required

x-sina-expire

文件过期时间,到期系统将自动清除文件(非即时,清除时间不定期),格式为:Sat, 20 Nov 2286 17:46:39 GMT

No

x-sina-info

固定头meta信息,支持64位str值,读取时原值返回,列文件时原值返回

No

x-sina-info-int

固定头meta信息,支持int值,读取时原值返回,列文件时原值返回

No

Cache-Control

文件Cache,标准HTTP协议,更多内容参见:http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9

No

Expires

文件在客户端或浏览器的缓存过期时间,允许客户端在这个时间之前不去服务端检查,读取时原值返回。格式为:Sun, 29 Jul 2018 20:36:14 UTC

No

Content-Type

文件mime type,读取时原值返回

No

Content-Length

文件大小,读取时原值返回

Yes

Content-MD5

文件MD5(与传送内容不符时失败),注意:字符串格式为rfc标准使用base64编码的值

No

s-sina-sha1

文件SHA-1(与传送内容不符时失败),注意:字符串格式为hex编码的值

No

Content-Disposition

HTTP标准文件属性信息,读取时原值返回。参见:http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1

No

Content-Encoding

文件编码,HTTP标准文件属性信息,读取时原值返回。参见:http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11

No

x-amz-acl

文件ACL:创建文件的同时,快速设置一个Canned-ACL。请参照:《ACL》

No

x-amz-meta-*

用户可自定义文件属性信息,读取时原值返回。

例如:

x-amz-meta-UploadLocation: My Home

X-amz-meta-ReviewedBy: test@test.net

X-amz-meta-FileChecksum: 0x02661779

X-amz-meta-CheckSumAlgorithm: crc32

No

请求示例:

curl -v -T "myfile.txt" -H "x-amz-meta-UploadLocation: My Home" -H "Date: Sat, 20 Nov 2286 17:46:39 GMT" -H "Authorization: SINA :" "http://.sinacloud.net/path/to/myfile.txt?formatter=json"

POST Object

描述:

POST方式上传一个文件(基于浏览器表单的上传方式)。

请求格式:

POST / HTTP/1.1

Host: .sinacloud.net

Content-Length:

Content-Type:multipart/form-data; boundary=----WebKitFormBoundary1dIjDASRYXQm6DNA

------WebKitFormBoundary1dIjDASRYXQm6DNA

Content-Disposition: form-data; name="key"

destinationProject/${filename}

------WebKitFormBoundary1dIjDASRYXQm6DNA

Content-Disposition: form-data; name="success_action_redirect"

http://123.abc.com/1.php?f=1111.txt

------WebKitFormBoundary1dIjDASRYXQm6DNA

Content-Disposition: form-data; name="AWSAccessKeyId"

100M414ZO0X30

------WebKitFormBoundary1dIjDASRYXQm6DNA

Content-Disposition: form-data; name="Policy"

eyJleHBpcmF0aW9uIjoiMjAxMi0wNi0wNlQwNjozOTo0MS4wMDBaIiwiY29uZGl0aW9ucyI6W3siYnVja2V0IjoiczN4cC5zM3dhdGNoIn0sWyJzdGFydHMtd2l0aCIsIiRrZXkiLCJhbmdlbFwvIl1dfQ==

------WebKitFormBoundary1dIjDASRYXQm6DNA

Content-Disposition: form-data; name="Signature"

VK6Kw4kRqW2e84ZIX2cV2QqHo58=

------WebKitFormBoundary1dIjDASRYXQm6DNA

Content-Disposition: form-data; name="file"; filename="112233.txt"

Content-Type: text/plain

------WebKitFormBoundary1dIjDASRYXQm6DNA

Content-Disposition: form-data; name="submit"

上传

------WebKitFormBoundary1dIjDASRYXQm6DNA--

表单元素:

Name

Description

Required

AWSAccessKeyId

就是AccessKey,可以到控制台获取

Yes

key

object上传后的key(路径),例如:angel/${filename},变量${filename}将被自动替换成被上传文件的文件名;当然也可以直接指定被上传文件存储在Sinastorage的文件名。如:angel/path/to/myfile.txt

Yes

acl

文件的ACL:创建文件的同时,快速设置一个Canned-ACL。请参照:《ACL》

No

success_action_status

上传成功后的响应码,通常设置为201

No

success_action_redirect

上传成功后客户端重定向的URL。

No

Policy

文件的策略,json格式字符串,并使用base64进行编码。后面详细介绍

Yes

Signature

使用SecretKey签名后的字符串。后面详细介绍

Yes

file

type=file的input表单

Yes

x-amz-meta-*

用户可自定义文件属性信息,读取时原值返回。

No

Cache-Control

文件的缓存策略(例如:max-age=31536000),读取时原值返回。

No

Expires

文件在客户端或浏览器的缓存过期时间,允许客户端在这个时间之前不去服务端检查,读取时原值返回。格式为:Sun, 29 Jul 2018 20:36:14 UTC

No

Policy的构建:

{

"expiration": "2014-04-10T08:55:34.000Z",

"conditions": [

{

"bucket": "my-bucket-name"

},

{

"acl": "private"

},

[

"starts-with", "$key", "my_prefix/"

],

[

"content-length-range", 0, 52428800

]

]

}

以上示例的说明:

上传必须在”2014-04-10T08:55:34.000Z”之前。

文件上传到名为”my-bucket-name”的bucket。

starts-with:$key必须以”my_prefix/”开始 (Policy中”$key”前必须带”$”)。若$key值为空,文件名前无前缀。

content-length-range:文件大小必须在指定范围内。

最终将policy进行base64编码设置到表单Policy的value中。

Signature的构建:

用UTF-8对policy进行编码

用Base64对UTF-8形式的policy进行编码

用HMAC SHA-1和你的Secret Key将你的policy进行转换。最后进行base64编码。如:使用php时,base64_encode( hash_hmac( "sha1", $policy, $SECRETKEY, true ) );

将最终的值设置到表单Signature的value中。

最终生成的html表单:

注意事项:

POST请求后的uri只能是“/”

success_action_redirect:指定上传成功后客户端重定向的URL。

key:变量${filename}将被自动替换成被上传文件的文件名;当然也可以直接指定被上传文件存储在Sinastorage的文件名。

PUT Object - Copy

描述:

通过拷贝方式创建Object(不上传具体的文件内容。而是通过COPY方式对系统内另一文件进行复制)。

请求格式:

PUT /?formatter=json HTTP/1.1

Host: .sinacloud.net

Date:

x-amz-copy-source:

x-amz-metadata-directive:

Authorization: #请参照《签名算法》

响应:

HTTP/1.1 200 OK

Date: Tue, 08 Apr 2014 02:59:47 GMT

Connection: keep-alive

Content-Length: 0

ETag: ""

X-RequestId: 00078d50-1404-0810-5947-782bcb10b128

X-Requester: Your UserId

Request Headers(请求头):

Name

Description

Required

x-amz-copy-source

被copy的文件地址。格式:/source-bucket/source-object,需要整体进行urlencode编码.

Yes

x-amz-metadata-directive

文件Meta以COPY方式填写还是REPLACE方式填写,以COPY方式时会使用源文件的meta而忽略本次上传的meta。格式:COPY | REPLACE

No

x-sina-expire

文件过期时间,到期系统将自动清除文件(非即时,清除时间不定期),格式为:Sat, 20 Nov 2286 17:46:39 GMT

No

x-sina-info

固定头meta信息,支持64位str值,读取时原值返回,列文件时原值返回

No

x-sina-info-int

固定头meta信息,支持int值,读取时原值返回,列文件时原值返回

No

Cache-Control

文件Cache,标准HTTP协议,更多内容参见:http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9

No

Expires

文件在客户端或浏览器的缓存过期时间,允许客户端在这个时间之前不去服务端检查,读取时原值返回。格式为:Sun, 29 Jul 2018 20:36:14 UTC

No

Content-Type

文件mime type,读取时原值返回

No

Content-Length

必须是0

=0

Content-Disposition

HTTP标准文件属性信息,读取时原值返回。参见:http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1

No

Content-Encoding

文件编码,HTTP标准文件属性信息,读取时原值返回。参见:http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11

No

x-amz-acl

文件ACL:创建文件的同时,快速设置一个Canned-ACL。请参照:《ACL》

No

x-amz-meta-*

用户可自定义文件属性信息,读取时原值返回。

例如:

x-amz-meta-UploadLocation: My Home

X-amz-meta-ReviewedBy: test@test.net

X-amz-meta-FileChecksum: 0x02661779

X-amz-meta-CheckSumAlgorithm: crc32

No

请求示例:

curl -v -X PUT -H "x-amz-copy-source: /bucket-123/path/to/file123.txt" -H "Date: Sat, 20 Nov 2286 17:46:39 GMT" -H "Authorization: SINA :" "http://.sinacloud.net/path/to/myfile.txt?formatter=json"

PUT Object - Relax

描述:

通过“秒传”方式创建Object(不上传具体的文件内容。而是通过SHA-1值对系统内文件进行复制)。

请求格式:

PUT /?relax&formatter=json HTTP/1.1

Host: .sinacloud.net

Date:

Content-Length: 0

Content-Type:

s-sina-sha1::

s-sina-length:

Authorization: #请参照《签名算法》

响应:

HTTP/1.1 200 OK

Date: Tue, 08 Apr 2014 02:59:47 GMT

Connection: keep-alive

Content-Length: 0

ETag: ""

X-RequestId: 00078d50-1404-0810-5947-782bcb10b128

X-Requester: Your UserId

Request Headers(请求头):

Name

Description

Required

s-sina-sha1

文件SHA-1(系统内无此文件则返回失败)

Yes

s-sina-length

文件大小,读取时以Content-Length返回

Yes

x-sina-expire

文件过期时间,到期系统将自动清除文件(非即时,清除时间不定期),格式为:Sat, 20 Nov 2286 17:46:39 GMT

No

x-sina-info

固定头meta信息,支持64位str值,读取时原值返回,列文件时原值返回

No

x-sina-info-int

固定头meta信息,支持int值,读取时原值返回,列文件时原值返回

No

Cache-Control

文件Cache,标准HTTP协议,更多内容参见:http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9

No

Expires

文件在客户端或浏览器的缓存过期时间,允许客户端在这个时间之前不去服务端检查,读取时原值返回。格式为:Sun, 29 Jul 2018 20:36:14 UTC

No

Content-Type

文件mime type,读取时原值返回

No

Content-Length

必须是0

=0

Content-Disposition

HTTP标准文件属性信息,读取时原值返回。参见:http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1

No

Content-Encoding

文件编码,HTTP标准文件属性信息,读取时原值返回。参见:http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11

No

x-amz-acl

文件ACL:创建文件的同时,快速设置一个Canned-ACL。请参照:《ACL》

No

x-amz-meta-*

用户可自定义文件属性信息,读取时原值返回。

例如:

x-amz-meta-UploadLocation: My Home

X-amz-meta-ReviewedBy: test@test.net

X-amz-meta-FileChecksum: 0x02661779

X-amz-meta-CheckSumAlgorithm: crc32

No

请求示例:

curl -v -X PUT -H "s-sina-sha1: 00fd4b4549a1094aae926ef62e9dbd3cdcc2e456" -H "s-sina-length: 1122" -H "Date: Sat, 20 Nov 2286 17:46:39 GMT" -H "Authorization: SINA :" "http://.sinacloud.net/path/to/myfile.txt?relax&formatter=json"

PUT Object - Meta

描述:

更新一个已经存在的文件的附加meta信息。

注意:这个接口无法更新文件的基本信息,如文件的大小和类型等。

请求格式:

PUT /?meta&formatter=json HTTP/1.1

Host: .sinacloud.net

Date:

Content-Length: 0

x-amz-meta-foo1:

x-amz-meta-foo2:

Authorization: #请参照《签名算法》

响应:

HTTP/1.1 200 OK

Date: Tue, 08 Apr 2014 02:59:47 GMT

Connection: keep-alive

Content-Length: 0

ETag: ""

X-RequestId: 00078d50-1404-0810-5947-782bcb10b128

X-Requester: Your UserId

Request Headers(请求头):

Name

Description

Required

x-sina-expire

更新文件过期时间,到期系统将自动清除文件(非即时,清除时间不定期),格式为:Sat, 20 Nov 2286 17:46:39 GMT

No

x-sina-info

固定头meta信息,支持64位str值,读取时原值返回,列文件时原值返回

No

x-sina-info-int

固定头meta信息,支持int值,读取时原值返回,列文件时原值返回

No

Cache-Control

文件Cache,标准HTTP协议,更多内容参见:http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9

No

Expires

文件在客户端或浏览器的缓存过期时间,允许客户端在这个时间之前不去服务端检查,读取时原值返回。格式为:Sun, 29 Jul 2018 20:36:14 UTC

No

Content-Type

文件mime type,读取时原值返回

No

Content-Disposition

HTTP标准文件属性信息,读取时原值返回。参见:http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1

No

Content-Encoding

文件编码,HTTP标准文件属性信息,读取时原值返回。参见:http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11

No

x-amz-acl

文件ACL:更新ACL。请参照:《ACL》

No

x-amz-meta-*

用户可自定义文件属性信息,读取时原值返回。

例如:

x-amz-meta-UploadLocation: My Home

X-amz-meta-ReviewedBy: test@test.net

X-amz-meta-FileChecksum: 0x02661779

X-amz-meta-CheckSumAlgorithm: crc32

No

请求示例:

curl -v -X PUT -H "x-amz-meta-UploadLocation: My Home" -H "Date: Sat, 20 Nov 2286 17:46:39 GMT" -H "Authorization: SINA :" "http://.sinacloud.net/path/to/myfile.txt?meta&formatter=json"

GET Object - Meta

描述:

获取一个已经存在的文件的附加meta信息。

请求格式:

GET /?meta&formatter=json HTTP/1.1

Host: .sinacloud.net

Date:

Authorization: #请参照《签名算法》

响应:

HTTP/1.1 200 OK

Date: Tue, 08 Apr 2014 02:59:47 GMT

Connection: keep-alive

Content-Length: 1234

Content-Type: application/json

ETag: ""

X-RequestId: 00078d50-1404-0810-5947-782bcb10b128

X-Requester: Your UserId

{

"Info": "foo info!",

"File-Name": "myfile.txt",

"Info-Int": 1122,

"Content-MD5": "050fdc0e690bfae7b29392f152bcf305",

"Last-Modified": "Fri, 11 Apr 2014 02:50:31 UTC",

"Content-SHA1": "7c483439a26140b163d82251860ec73d3824d6b0",

"Owner": "SINA0000000000000001",

"Type": "text/plain",

"File-Meta": {

"x-amz-meta-sex": "female",

"x-amz-meta-age": "38",

"x-amz-meta-crc32": "7D45CD11"

},

"Size": 12

}

返回值说明:

Name

Description

Info

创建object时设置的 x-sina-info 值。

File-Name

object key (文件名)。

Info-Int

创建object时设置的 x-sina-info-int 值。

Content-MD5

文件内容的 MD5 值。

Content-SHA1

文件内容的 SHA1 值。

Last-Modified

文件的最后修改时间。

Owner

文件的所有者。

Type

文件的mime-type。

File-Meta

创建文件时设置的x-amz-meta-*值,下一级为key-value数组。

Size

文件的大小(bytes)。

请求示例:

curl -v -H "Date: Sat, 20 Nov 2286 17:46:39 GMT" -H "Authorization: SINA :" "http://.sinacloud.net/path/to/myfile.txt?meta&formatter=json"

DELETE Object

描述:

删除指定Object。

请求格式:

DELETE /?formatter=json HTTP/1.1

Host: .sinacloud.net

Date:

Authorization: #请参照《签名算法》

响应(无HTTP Body):

HTTP/1.1 204 No Content

Date: Tue, 08 Apr 2014 02:59:47 GMT

Content-Length: 0

Connection: keep-alive

X-RequestId: 00078d50-1404-0810-5947-782bcb10b128

X-Requester: Your UserId

请求示例:

curl -v -X DELETE -H "Date: Sat, 20 Nov 2286 17:46:39 GMT" -H "Authorization: SINA :" "http://.sinacloud.net/path/to/my/file.txt?formatter=json"

GET Object ACL

描述:

获得指定Object的ACL信息。更多信息请参照:《ACL》

请求格式:

GET /?acl&formatter=json HTTP/1.1

Host: .sinacloud.net

Date:

Authorization: #请参照《签名算法》

响应:

HTTP/1.1 200 OK

Date: Tue, 08 Apr 2014 02:59:47 GMT

Content-Length: 123

Connection: keep-alive

X-RequestId: 00078d50-1404-0810-5947-782bcb10b128

X-Requester: Your UserId

{

"Owner": "SINA0000000000000001",

"ACL": {

"GRPS000000ANONYMOUSE": [

"read"

],

"SINA0000001001NHT3M7": [

"read",

"write",

"read_acp",

"write_acp"

],

"SINA0000000000000001": [

"read",

"write",

"read_acp",

"write_acp"

],

"SINA0000001001HBK3UT": [

"read",

"write",

"read_acp",

"write_acp"

],

"GRPS0000000CANONICAL": [

"read",

"write",

"read_acp",

"write_acp"

],

...

}

}

响应格式说明请参照:《ACL》

请求示例:

curl -v -H "Date: Sat, 20 Nov 2286 17:46:39 GMT" -H "Authorization: SINA :" "http://.sinacloud.net/path/to/my/file.txt?acl&formatter=json"

PUT Object ACL

描述:

给指定Object设置ACL规则。更多信息请参照:《ACL》

请求格式:

PUT /?acl&formatter=json HTTP/1.1

Host: .sinacloud.net

Date:

Authorization: #请参照《签名算法》

#ACL规则

{

'SINA0000000000000001' : [ "read", "read_acp" , "write", "write_acp" ],

'GRPS000000ANONYMOUSE' : [ "read", "read_acp" , "write", "write_acp" ],

'GRPS0000000CANONICAL' : [ "read", "read_acp" , "write", "write_acp" ],

}

响应(无HTTP Body):

HTTP/1.1 200 OK

Date: Tue, 08 Apr 2014 02:59:47 GMT

Connection: keep-alive

X-RequestId: 00078d50-1404-0810-5947-782bcb10b128

X-Requester: Your UserId

请求格式说明请参照:《ACL》

请求示例:

curl -v -T "acl.txt" -H "Date: Sat, 20 Nov 2286 17:46:39 GMT" -H "Authorization: SINA :" "http://.sinacloud.net/path/to/my/file.txt?acl&formatter=json"

Initiate Multipart Upload

描述:

大文件分片上传初始化接口

注意:在初始化上传接口中要求必须进行用户认证,匿名用户无法使用该接口。

在初始化上传时需要给定文件上传所需要的meta绑定信息,在后续的上传中该信息将被保留,并在最终完成时写入云存储系统。

请求格式:

POST /?multipart&formatter=json HTTP/1.1

Host: .sinacloud.net

Date:

Content-Type:

x-amz-meta-foo1: #自定义meta:foo1

x-amz-meta-foo2: #自定义meta:foo2

Authorization: #请参照《签名算法》

响应:

HTTP/1.1 200 OK

Date: Tue, 08 Apr 2014 02:59:47 GMT

Connection: keep-alive

X-RequestId: 00078d50-1404-0810-5947-782bcb10b128

X-Requester: Your UserId

{

"Bucket": "",

"Key": "",

"UploadId": "7517c1c49a3b4b86a5f08858290c5cf6"

}

请求示例:

curl -v -X POST "Date: Sat, 20 Nov 2286 17:46:39 GMT" -H "Authorization: SINA :" "http://.sinacloud.net/path/to/my/file.txt?multipart&formatter=json"

Upload Part

描述:

上传分片接口

请求格式:

PUT /?partNumber=&uploadId=&formatter=json HTTP/1.1

Host: .sinacloud.net

Date:

Content-Length:

Content-MD5:

Authorization: #请参照《签名算法》

...

file_content

...

响应:

HTTP/1.1 200 OK

Date: Tue, 08 Apr 2014 02:59:47 GMT

Connection: keep-alive

X-RequestId: 00078d50-1404-0810-5947-782bcb10b128

X-Requester: Your UserId

Etag:

请求参数(QueryString):

Parameter

Description

Required

partNumber

文件分片的序号,从1开始

Yes

uploadId

通过Initiate Multipart Upload(大文件分片上传初始化接口)获得的uploadId值

Yes

注意:分片数不能超过2048。

Complete Multipart Upload

描述:

大文件分片上传拼接完成接口(合并接口)

请求格式:

POST /?uploadId=&formatter=json HTTP/1.1

Host: .sinacloud.net

Date:

Content-Type: text/json

Authorization: #请参照《签名算法》

[

{

"PartNumber": 1,

"ETag": "050fdc0e690bfae7b29392f152bcf301"

},

{

"PartNumber": 2,

"ETag": "050fdc0e690bfae7b29392f152bcf302"

},

{

"PartNumber": 3,

"ETag": "050fdc0e690bfae7b29392f152bcf303"

},

{

"PartNumber": 4,

"ETag": "050fdc0e690bfae7b29392f152bcf304"

},

{

"PartNumber": 5,

"ETag": "050fdc0e690bfae7b29392f152bcf305"

},

...

]

响应:

HTTP/1.1 200 OK

Date: Tue, 08 Apr 2014 02:59:47 GMT

Connection: keep-alive

X-RequestId: 00078d50-1404-0810-5947-782bcb10b128

X-Requester: Your UserId

请求参数(QueryString):

Parameter

Description

Required

uploadId

通过Initiate Multipart Upload(大文件分片上传初始化接口)获得的uploadId值

Yes

Body内容说明(json格式):

Name

Description

Required

PartNumber

文件分片的序号

Yes

ETag

通过Upload Part(上传分片接口)上传成功后返回的响应头中的Etag值

Yes

List Parts

描述:

列出已经上传的所有分块

请求格式:

GET /?uploadId=&formatter=json HTTP/1.1

Host: .sinacloud.net

Date:

Authorization: #请参照《签名算法》

响应:

HTTP/1.1 200 OK

Date: Tue, 08 Apr 2014 02:59:47 GMT

Connection: keep-alive

X-RequestId: 00078d50-1404-0810-5947-782bcb10b128

X-Requester: Your UserId

{

"Bucket": "",

"Key": "",

"Owner": {

"ID": "",

"DisplayName": ""

},

"Parts": [

{

"PartNumber": 1,

"Last-Modified": "Wed, 20 Jun 2012 14:57:10 UTC",

"ETag": "050fdc0e690bfae7b29392f152bcf301",

"Size": 1024

},

{

"PartNumber": 2,

"Last-Modified": "Wed, 20 Jun 2012 14:57:10 UTC",

"ETag": "050fdc0e690bfae7b29392f152bcf302",

"Size": 1024

},

{

"PartNumber": 3,

"Last-Modified": "Wed, 20 Jun 2012 14:57:10 UTC",

"ETag": "050fdc0e690bfae7b29392f152bcf303",

"Size": 1024

},

...

]

}

请求参数(QueryString):

Parameter

Description

Required

uploadId

通过Initiate Multipart Upload(大文件分片上传初始化接口)获得的uploadId值

Yes

新浪云存储 php,新浪云存储SCS | API文档相关推荐

  1. 如何查看jsplumb.js的API文档(YUIdoc的基本使用)#华为云·寻找黑马程序员#

    [摘要] 介绍前端文档工具YUIdoc 示例代码托管在:http://www.github.com/dashnowords/blogs 一.问题描述 最近向一些同事推荐了网页中实现流程图绘制的工具库j ...

  2. 基于Java毕业设计新冠疫苗接种预约系统登录源码+系统+mysql+lw文档+部署软件

    基于Java毕业设计新冠疫苗接种预约系统登录源码+系统+mysql+lw文档+部署软件 基于Java毕业设计新冠疫苗接种预约系统登录源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构 ...

  3. java计算机毕业设计在线云音乐系统源码+mysql数据库+系统+lw文档+部署

    java计算机毕业设计在线云音乐系统源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计在线云音乐系统源码+mysql数据库+系统+lw文档+部署 本源码技术栈: 项目架构:B/S架构 ...

  4. java计算机毕业设计新冠疫苗接种预约系统登录源码+mysql数据库+lw文档+系统+调试部署

    java计算机毕业设计新冠疫苗接种预约系统登录源码+mysql数据库+lw文档+系统+调试部署 java计算机毕业设计新冠疫苗接种预约系统登录源码+mysql数据库+lw文档+系统+调试部署 本源码技 ...

  5. java计算机毕业设计H5新冠防疫宣传网站设计与实现MyBatis+系统+LW文档+源码+调试部署

    java计算机毕业设计H5新冠防疫宣传网站设计与实现MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计H5新冠防疫宣传网站设计与实现MyBatis+系统+LW文档+源码+调试部署 ...

  6. 【玩转云函数】腾讯云云函数结合金山文档打造轻量级 Office 在线预览服务

    以下内容来自「玩转腾讯云」用户原创文章,已获得授权. 本文介绍下如何使用云函数来实现 Office 办公文件的预览 01. 前言 曾几何时,文档预览曾经很麻烦,小公司需要购买服务器,自行搭建文件服务器 ...

  7. 苹果汽车将不支持全自动驾驶;华为云发布研发需求管理工具;腾讯文档发布企业版;OpenAI上线ChatGPT | 每日大事件...

    ‍ ‍数据智能产业创新服务媒体 --聚焦数智 · 改变商业 01.苹果汽车被曝大降级:不支持完全自动驾驶 12 月 7 日消息,苹果公司已经缩减了其苹果汽车项目,该公司不再计划发布完全自动驾驶的汽车. ...

  8. 构建中国云生态|华云数据与百望云完成产品兼容互认证 携手搭建版式文档新生态

    ​随着我国对保障信息安全政策的逐步加码,建立我国自己的版式文档存储.交换格式标准以及国产生态的需求日益迫切. 为推动电子档案实现国产应用和安全高效处理,日前,华云数据国产通用型云操作系统安超OS 20 ...

  9. 计算机前进后退灰的无法按,《微机试题2012新题.xls》-支持高清全文免费浏览-max文档...

    微机试题2012新题,微机原理期末考试题,微机考试试题,微机原理试题,微机接口技术试题,微机原理及应用试题,微机原理试题及答案,微机接口试题,微机原理考试试题,电力系统微机保护试题 Sheet1 楷体 ...

最新文章

  1. ORACLE 中dbms_stats的使用
  2. MySQL 数据库 InnoDB 和 MyISAM 数据引擎的差别
  3. 操作系统习题6—存储管理2
  4. ASP.NET MVC HandleError异常过滤器过滤器用法
  5. jeecg输入中文查询导表为空_学术利器—SCI期刊影响因子查询/中文核心期刊查询系统更新...
  6. Brief C Programs of the Bombs
  7. System verilog随机系统函数$urandom_range使用方法
  8. 剑指offer——面试题20:顺时针打印矩阵
  9. python nltk.download报错_python 文本转语音机器学习之nltk download安装测试包
  10. 易飞ERP工作流解决方案之【第三方OA系统集成】
  11. element 源码学习五 —— Notice 系列组件学习
  12. appcan 开发步骤
  13. 实战——登陆注册管理后台
  14. 武汉体育学院计算机设计大赛,2017年(第10届)中国大学生计算机设计大赛中南地区赛作品评审结果公告.PDF...
  15. 全球重力异常值和磁场异常值提取
  16. 【实验】串口通信小试
  17. 达摩院视觉AI课-身份证识别
  18. Android中实现图片平移、缩放、旋转同步进行
  19. VIVO(维沃)2021年芯片设计工程师笔试题+解析
  20. 性能测试:压力测试、负载测试、并发测试和稳定性测试的区别

热门文章

  1. Python入门:从空瓶换酒聊起
  2. 性能测试瓶颈分析与系统调优(9)java程序GC机制及性能稳定性调优分析
  3. 世行深圳TOD试点项目顺利通过半年评审
  4. sdm660代码编译和刷机
  5. Segmentation fault (core dumped) src/tcmalloc.cc:277.. Aborted on prediction
  6. Phoenix 简介及使用方式
  7. 虚拟机利用与叠加带宽
  8. Heroes 综合能力TOP-TEN
  9. 项目经理的时间管理法则
  10. LB集群--LVS部署