Professional Documents
Culture Documents
3
1.
....................................... 4
2.
................................................. 5
3.
4.
5.
2.1
Object ............................................................................................. 5
2.2
Bucket ............................................................................................ 5
2.3
2.4
Service ........................................................................................... 6
OSS ............................................. 7
3.1
OSS ............................................................................... 7
3.2
Object ......................................................... 7
3.3
OSS ................................................................................... 8
3.4
3.5
....................................................................... 11
................................................ 13
4.1
Authentication ................................................13
4.2
Head .....................................................................13
4.3
URL .....................................................................18
4.4
Bucket ...........................................................................19
............................................ 21
5.1
5.2
HTTP .......................................................................22
5.1.1
5.1.2
Service .....................................................................23
5.2.1
5.3
Bucket ......................................................................26
5.3.1
5.3.2
5.3.3
5.4
5.5
6.
5.3.4
5.3.5
Object ..........................................................................42
5.4.1
5.4.2
5.4.3
5.4.4
5.4.5
5.4.6
5.5.2
5.5.3
5.5.4
5.5.5
5.5.6
OSS .......................................... 78
6.1
OSS ...................................................................78
6.2
OSS ..............................................................................79
6.3
OSS ...........................................................81
6.4
OSS .......................................................................82
6.5
OSS ............................................84
OSS OSS
API
1.
OpenStorageService OSS
REST
WEB
OSS Java Python PHPC# SDK
OSS
OSS http://oss.aliyuncs.com
OSS 1http://oss-internal.aliyuncs.com
OSS web http://oss.aliyun.com/
OSS
2.
2.1 Object
OSS Object Object
5TB Object keymeta datakey Object meta
object name-value data Object
Object
UTF-8
1-1023
/\
2.2 Bucket
Bucket OSS
Bucket OSS
OSS Object Bucket
Bucket 10 Bucket
Bucket Object
Bucket
-
3-63
ID OSS
2.4 Service
OSS
Bucket
3. OSS
3.1 OSS
OSS OSS
Bucket
Bucket
Object
Multi-Part Upload
3.2 Object
bucket
object object
http:// < bucket >.oss.aliyuncs.com/< object >
http://oss-example.oss.a
om/aliyun-logo.png
bu
host
URL HTML
<img src="http://oss-example.oss.aliyuncs.com/aliyun-logo.png"/>
3.3 OSS
OSS OSS
OSS HTTP header referer
OSS http://oss.aliyun.com bucket referer
referer oss-example
bucket referer http://www.aliyun.com referer
http://www.aliyun.com oss-example bucket Object
1) URL Object
Header Authorization
2) bucket referer
3) Referer *
4) referer
5) referer
6) referer referer
referer
7) referer referer
OSS
Bucket
8
http://oss.aliyun.com bucket
bucket BucketSource BucketOSS
bucket
Object bucket BucketTarget Bucket
object
<TargetPrefix><SourceBucket>-YYYY-mm-DD-HH-MM-SS-UniqueString
LOG
Remote IP
119.140.142.11
IP Proxy
Reserved
Reserved
Time
[02/May/2012:00:00:04 +0800]
OSS
Request-URI
URI( query-string)
HTTP Status
200
OSS HTTP
SentBytes
5576
OSS
RequestTime (ms)
71
Referrer
http://oss.aliyun.com
HTTP Referrer
User-Agent
curl/7.15.5
HTTP User-Agent
HostName
oss-example.oss.aliyuncs.com
Request ID
505B01695037C2AF032593A4
UUID
LoggingFlag
true
Reserved
Requester Aliyun ID
1657136103983691
ID-
Operation
GetObject
Bucket
oss-example
Bucket
Key
/aliyun-logo.png
Key
ObjectSize
5576
Object
17
OSS
Error Code
NoSuchBucket
OSS
Request Length
302
Byte
UserID
1657136103983691
Bucket ID
Delta DataSize
280
Bucket -
1) Bucket Bucket
2) TargetPrefix object
3) bucket bucket Bucket Bucket
bucket LOG bucket
TargetPrefix
4) OSS bucket Log
LOG LOG
OSS LOG
x-user=admin
8) OSS LOG -
3.5
OSS Server-Side
EncryptionOSS
OSS
HTTP Header
Object
Object OSS
Put Object
Copy Object
Initiate Multipart Upload
Put Object
PUT /ObjectName HTTP/1.1
Content-LengthContentLength
11
Content-Type: ContentType
Host: BucketName.oss.aliyuncs.com
x-oss-server-side-encryption: AES256
Date: GMT Date
Authorization: SignatureValue
[object data]
1) Object Group
2) Put ObjectCopy Object Initiate Multipart Upload
OSS x-oss-server-side-encryption OSS
HTTP 400InvalidArgument
3) OSS AES256
x-oss-server-side-encryption OSS HTTP 400
InvalidEncryptionAlgorithmError
4) Object API OSS
x-oss-server-side-encryption
Put Object
Copy Object
Initiate Multipart Upload
Upload Part
Complete Multipart Upload
Get Object
12
Head Object
4.
4.1 Authentication
OSS Access Key ID/ Access Key Secret
Access Key ID Access Key Secret
OSS Access Key Secret
OSS Access Key Access Key ID Access Key
Secret active/inactive
active ID
inactive ID
0 2 active inactive ID
http://oss.aliyun.com/ OSS ID
OSS OSS
Access Key Secret
OSS Access Key ID Access Key
Secret
OSS HTTP
403
4.2 Head
HTTP Authorization Head
(Signature)
Authorization
"Authorization: OSS " + Access Key Id + ":" + Signature
13
CONTENT-MD5 MD5
CONTENT-TYPE
CanonicalizedResource OSS
CanonicalizedOSSHeaders
x-oss- HTTP Header CanonicalizedOSSHeaders
1)
2)
HTTP
3)
4)
x-oss-meta-name: TaoBao,Alipay
x-oss-meta-name:TaoBao,Alipay
5)
\n CanonicalizedOSSHeader
CanonicalizedResource
OSS CanonicalizedResource
1)
CanonicalizedResource
14
2)
3)
(sub-resource)3
& CanonicalizedResource
CanonicalizedResource /BucketName/ObjectName?acl &uploadId=UploadId
4)
AccessID "44CF9590006BF252F707"
Access Key Secret "OtxrzxIsfpFjA7SwPzILwy8Bw21TLhquhboDYROV"
(Signature):
python
import base64
import hmac
import sha
h = hmac.new("OtxrzxIsfpFjA7SwPzILwy8Bw21TLhquhboDYROV",
"PUT\nc8fdb181845a4ca6b8fec737b3581d76\ntext/html\nThu,
17 Nov
2005 18:49:58
GMT\nx-oss-magic:abracadabra\nx-oss-meta-author:foo@bar.com\n/oss-example/nelson", sha)
base64.encodestring(h.digest()).strip()
(Signature)dZpCvvKgxiFw6wvMHHj5g3W6STM=
Authorization
PUT /nelson HTTP/1.0
Authorization: OSS 44CF9590006BF252F707: dZpCvvKgxiFw6wvMHHj5g3W6STM=
Content-Md5: c8fdb181845a4ca6b8fec737b3581d76
Content-Type: text/html
Date: Thu, 17 Nov 2005 18:49:58 GMT
OSS aclgroupuploadIdpartNumberuploadslogging
Host: oss-example.oss.aliyuncs.com
X-OSS-Meta-Author: foo@bar.com
X-OSS-Magic: abracadabra
1) UTF-8
UTF-8 Access Key Secret
2) RFC 2104 (http://www.ietf.org/rfc/rfc2104.txt)
HMAC-SHA1 Key Access Key Secret
3) content-type content-md5
\n
4) HTTP header x-oss- header
HTTP header OSS
x-oss-magic
5) x-oss- head
head
head
head name value
Head \n Head
CanonicalizedOSSHeaders
date1 = 2DIGIT SP month SP 4DIGIT; day month year (e.g., 02 Jun 1982)
date2 = 2DIGIT "-" month "-" 2DIGIT; day-month-year (e.g., 02-Jun-82)
date3 = month SP ( 2DIGIT | ( SP 1DIGIT )); month day (e.g., Jun 2) 2
16
2 DIGITJun 2
2 Jun 19822-Jun-82
4) Date 403
Forbidden AccessDenied
5) OSS 15
403 ForbiddenRequestTimeTooSkewed
6) AccessID active OSS
403 Forbidden response
OSS response
<OSSAccessKeyId>
AKIAIVAKMSMOY7VOMRWQ
</OSSAccessKeyId>
</Error>
4.3 URL
Authorization Head URL
URL
URL :
http://oss-example.oss.aliyuncs.com/oss-api.pdf?OSSAccessKeyId=44CF9590006BF252F707&Expires=1141
889120&Signature=vjbyPxybdZaNmGa%2ByT272YEAiv4%3D
URL SignatureExpiresOSSAccessKeyId
Expires UNIX UTC 1970 1 1
wiki URL OSS
URL Expires
1141889060 60 URL
Expires 1141889120
OSS Head URL
4) Expires
URL python
import base64
import hmac
18
import sha
import urllib
h = hmac.new("OtxrzxIsfpFjA7SwPzILwy8Bw21TLhquhboDYROV",
"GET\n\n\n1141889120\n/oss-example/oss-api.pdf",
sha)
urllib.quote_plus (base64.encodestring(h.digest()).strip())
1) URL
4.4 Bucket
OSS Bucket Bucket
public-read-writepublic-read private
public-read-write bucket
19
:
Put Bucket Acl
Get Bucket Acl
20
5.
OSS OSS
OSS
21
5.1 HTTP
5.1.1
OSS RESTful
OSS
Authorization
Content-Length
RFC 2616HTTP
OSS
Content-Type
RFC 2616HTTP
OSS
Date
Host<bucketname>.oss.aliyuncs.com
Host
5.1.2
OSS RESTful
OSS
Content-Length
RFC 2616HTTP
OSS
22
OSS
Connection
open | close
Date
ETag
Put ObjectObjectETagMD5
ObjectETagUUIDETagObject
Response
Server
AliyunOSS
x-oss-request-id
x-oss-request-idAliyun OSSresponseUUID
OSSOSS
5.2 Service
5.2.1
GetService (ListBucket)
Get Bucket/
GET / HTTP/1.1
Host: oss.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue
(Response Elements)
Bucket
bucket.
23
Name, CreationDate
ListAllMyBucketsResult.Buckets
Buckets
Bucket
Bucket
ListAllMyBucketsResult
CreateDate
Bucket
(yyyy-mm-ddThh:mm:ss.timezone, e.g.,
2011-12-01T12:27:13.000Z)
ListAllMyBucketsResult.Buckets.Bucket
DisplayName
Bucket (ID)
ListAllMyBucketsResult.Owner
ID
BucketID
ListAllMyBucketsResult.Owner
ListAllMyBucketsResult
Get Service
: Owner, Buckets
None
Name
Bucket
ListAllMyBucketsResult.Buckets.Bucket
Owner
Bucket
ListAllMyBucketsResult
1) GetService API
2) 403 Forbidden
AccessDenied
GET / HTTP/1.1
Host: oss.aliyuncs.com
Date: Fri, 24 Feb 2012 02:58:28 GMT
Authorization: OSS qn6qrrqxo2oawuk53otfjbyc:MiorP5BDFDhKAn44wDnkSSv2Z94=
24
HTTP/1.1 200 OK
x-oss-request-id: 60633d3c-1293-0d72-7739-759423f02d36
Date: Fri, 24 Feb 2012 02:58:28 GMT
Content-type: application/xml
Content-Length: 685
Connection: close
Server: AliyunOSS
25
5.3 Bucket
5.3.1
Delete Bucket
DELETE / HTTP/1.1
Host: BucketName.oss.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue
DELETE / HTTP/1.1
Host: oss-example.oss.aliyuncs.com
Date: Fri, 24 Feb 2012 05:31:04 GMT
Authorization: OSS qn6qrrqxo2oawuk53otfjbyc:ceOEyZavKY4QcjoUWYSpYbJ3naA=
26
Put Bucket
Delete Object
27
5.3.2
GET / HTTP/1.1
Host: BucketName.oss.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue
(Request Parameters)
GetBucketListObject prefixmarkerdelimiter max-keys
list
delimiter
Object
delimiter object CommonPrefixes
marker
marker
max-keys
object 1000max-keys
1000
100
prefix
(Response Elements)
Contents
Object meta
ListBucketResult
CommonPrefixes
delimiter OSS
CommonPrefixes delimiter
28
object
ListBucketResult
Delimiter
Object
delimiter object CommonPrefixes
ListBucketResult
DisplayName
Object
ListBucketResult.Contents.Owner
ETag
ListBucketResult.Contents
ID
BucketID
ListBucketResult.Contents.Owner
IsTruncated
truefalse
true | false
ListBucketResult
Key
Object Key.
ListBucketResult.Contents
LastModified
Object
ListBucketResult.Contents
ListBucketResult
Get Bucket .
Marker
ListBucketResult
MaxKeys
ListBucketResult
Name
Bucket
29
ListBucketResult
Owner
Bucket
DisplayName, ID
ListBucketResult
Prefix
ListBucketResult
Object
Size
ListBucketResult.Contents
StorageClass
Object Standard
ListBucketResult.Contents
30
CommonPrefixes
bucket object :
fun/test.jpg fun/movie/001.avi fun/movie/007.avi
prefix fun/ object delimiter
/fun/test.jpgfun/movie/
bucketmy_oss 4 object
oss.jpg
fun/test.jpg
fun/movie/001.avi
fun/movie/007.avi
GET / HTTP/1.1
Host: oss-example.oss.aliyuncs.com
Date: Fri, 24 Feb 2012 08:43:27 GMT
Authorization: OSS qn6qrrqxo2oawuk53otfjbyc:BC+oQIXVR2/ZghT7cGa0ykboO4M=
HTTP/1.1 200 OK
x-oss-request-id: 248c6483-2a95-622e-3022-ebe65d8aad5f
Date: Fri, 24 Feb 2012 08:43:27 GMT
Content-Type: application/xml
Content-Length: 1866
Connection: close
Server: AliyunOSS
<Contents>
<Key>fun/movie/001.avi</Key>
<LastModified>2012-02-24T08:43:07.000Z</LastModified>
<ETag>"5B3C1A2E053D763E1B002CC607C5A0FE"</ETag>
<Type>Normal</Type>
<Size>344606</Size>
<StorageClass>Standard</StorageClass>
<Owner>
<ID>00220120222</ID>
<DisplayName>user-example</DisplayName>
</Owner>
</Contents>
<Contents>
<Key>fun/movie/007.avi</Key>
<LastModified>2012-02-24T08:43:27.000Z</LastModified>
<ETag>"5B3C1A2E053D763E1B002CC607C5A0FE"</ETag>
<Type>Normal</Type>
<Size>344606</Size>
<StorageClass>Standard</StorageClass>
<Owner>
<ID>00220120222</ID>
<DisplayName>user-example</DisplayName>
</Owner>
</Contents>
<Contents>
<Key>fun/test.jpg</Key>
<LastModified>2012-02-24T08:42:32.000Z</LastModified>
<ETag>"5B3C1A2E053D763E1B002CC607C5A0FE"</ETag>
<Type>Normal</Type>
<Size>344606</Size>
<StorageClass>Standard</StorageClass>
<Owner>
<ID>00220120222</ID>
<DisplayName>user-example</DisplayName>
</Owner>
</Contents>
<Contents>
<Key>oss.jpg</Key>
<LastModified>2012-02-24T06:07:48.000Z</LastModified>
<ETag>"5B3C1A2E053D763E1B002CC607C5A0FE"</ETag>
<Type>Normal</Type>
<Size>344606</Size>
<StorageClass>Standard</StorageClass>
<Owner>
32
<ID>00220120222</ID>
<DisplayName>user-example</DisplayName>
</Owner>
</Contents>
</ListBucketResult>
( Prefix )
GET /?prefix=fun HTTP/1.1
Host: oss-example.oss.aliyuncs.com
Date: Fri, 24 Feb 2012 08:43:27 GMT
Authorization: OSS qn6qrrqxo2oawuk53otfjbyc:BC+oQIXVR2/ZghT7cGa0ykboO4M=
HTTP/1.1 200 OK
x-oss-request-id: 25cb535f-1feb-1e90-2f22-12176bcb563e
Date: Fri, 24 Feb 2012 08:43:27 GMT
Content-Type: application/xml
Content-Length: 1464
Connection: close
Server: AliyunOSS
<LastModified>2012-02-24T08:43:27.000Z</LastModified>
<ETag>"5B3C1A2E053D763E1B002CC607C5A0FE"</ETag>
<Type>Normal</Type>
<Size>344606</Size>
<StorageClass>Standard</StorageClass>
<Owner>
<ID>00220120222</ID>
<DisplayName>user_example</DisplayName>
</Owner>
</Contents>
<Contents>
<Key>fun/test.jpg</Key>
<LastModified>2012-02-24T08:42:32.000Z</LastModified>
<ETag>"5B3C1A2E053D763E1B002CC607C5A0FE"</ETag>
<Type>Normal</Type>
<Size>344606</Size>
<StorageClass>Standard</StorageClass>
<Owner>
<ID>00220120222</ID>
<DisplayName>user_example</DisplayName>
</Owner>
</Contents>
</ListBucketResult>
( prefix delimiter )
GET /?prefix=fun/&delimiter=/ HTTP/1.1
Host: oss-example.oss.aliyuncs.com
Date: Fri, 24 Feb 2012 08:43:27 GMT
Authorization: OSS qn6qrrqxo2oawuk53otfjbyc:DNrnx7xHk3sgysx7I8U9I9IY1vY=
HTTP/1.1 200 OK
x-oss-request-id: 0b05f9b1-539e-a858-0a81-9ca13d8a8011
Date: Fri, 24 Feb 2012 08:43:27 GMT
Content-Type: application/xml
Content-Length: 712
Connection: close
Server: AliyunOSS
<Marker></Marker>
<MaxKeys>100</MaxKeys>
<Delimiter>/</Delimiter>
<IsTruncated>false</IsTruncated>
<Contents>
<Key>fun/test.jpg</Key>
<LastModified>2012-02-24T08:42:32.000Z</LastModified>
<ETag>"5B3C1A2E053D763E1B002CC607C5A0FE"</ETag>
<Type>Normal</Type>
<Size>344606</Size>
<StorageClass>Standard</StorageClass>
<Owner>
<ID>00220120222</ID>
<DisplayName>user_example</DisplayName>
</Owner>
</Contents>
<CommonPrefixes>
<Prefix>fun/movie/</Prefix>
</CommonPrefixes>
</ListBucketResult>
Put Bucket
Put Object
Get Object
35
5.3.3
(Response Elements)
AccessControlList
ACL
AccessControlPolicy
AccessControlPolicy
None
DisplayName
Bucket.(ID)
AccessControlPolicy.Owner
Grant
Bucket ACL
ID
BucketID
AccessControlPolicy.Owner
Owner
Bucket
AccessControlPolicy
Host: oss-example.oss.aliyuncs.com
Date: Fri, 24 Feb 2012 04:11:23 GMT
Authorization: OSS qn6qrrqxo2oawuk53otfjbyc:CTkuxpLAi4XZ+WwIfNm0FmgbrQ0=
HTTP/1.1 200 OK
x-oss-request-id: 6f720c98-40fe-6de0-047b-e7fb08c4059b
Date: Fri, 24 Feb 2012 04:11:23 GMT
Content-Length: 253
Content-Tupe: application/xml
Connection: close
Server: AliyunOSS
Put Bucket
Get Bucket Acl
37
5.3.4
Put Bucket
PutBucket Bucket
PUT / HTTP/1.1
Host: BucketName.oss.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue
1) Bucket 200 OK
2) Bucket 409 Conflict
BucketAlreadyExists
3) Bucket 400 Bad Request
InvalidBucketName
4) PUT Bucket 403
Forbidden AccessDenied
5) PutBucket bucket 10 400
Bad Request TooManyBuckets
6) BucketPrivate
PUT / HTTP/1.1
Host: oss-example.oss.aliyuncs.com
Date: Fri, 24 Feb 2012 03:15:40 GMT
Authorization: OSS qn6qrrqxo2oawuk53otfjbyc:77Dvh5wQgIjWjwO/KyRt8dOPfo8=
HTTP/1.1 200 OK
x-oss-request-id: 7c9e8b71-3c6a-1b7d-2361-093f1af5f5e9
Date: Fri, 24 Feb 2012 03:15:40 GMT
Location: /oss-example
Content-Length: 0
Connection: close
38
Server: AliyunOSS
39
5.3.5
PUT / HTTP/1.1
x-oss-acl: Permission
Host: BucketName.oss.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue
1) bucket
bucket bucket
2) Put Bucket 403
Forbidden AccessDenied
3)
x-oss-acl bucket
bucket
PUT / HTTP/1.1
x-oss-acl: public-read
Host: oss-example.oss.aliyuncs.com
Date: Fri, 24 Feb 2012 03:21:12 GMT
Authorization: OSS qn6qrrqxo2oawuk53otfjbyc:KU5h8YMUC78M30dXqf3JxrTZHiA=
HTTP/1.1 200 OK
x-oss-request-id: 248c6483-2a95-622e-3022-ebe65d8aad5f
Date: Fri, 24 Feb 2012 03:21:12 GMT
Content-Length: 0
Connection: close
40
Server: AliyunOSS
Put Bucket
Get Bucket Acl
41
5.4 Object
5.4.1
Copy Object
Header
x-oss-copy-source
x-oss-copy-source-if-m
ObjectETAGETAG412
atch
HTTP
x-oss-copy-source-if-no
Object
ne-match
412 HTTP
x-oss-copy-source-if-un
modified-since
x-oss-copy-source-if-m
Object412
odified-since
HTTP
42
x-oss-metadata-directiv
COPYREPLACECOPYObjectmeta
ObjectREPLACEObjectmeta
meta400 HTTPCOPY
Objectx-oss-server-side-encryptionmeta
COPY
COPY | REPLACE
x-oss-server-side-encry
ossobject
ption
AES256
(Response Elements)
CopyObjectResult
Copy Object
ObjectETag
ETag
CopyObjectResult
LastModified
Object
CopyObjectResult
1) Object meta
2) Object Object
x-oss-metadata-directive Object meta
3) OSS Header Get
Object
4) Object
5) Object Bucket Get
Object Bucket Put
6) x-oss-
43
7) Object Group
8) x-oss-server-side-encryption
AES256 Object
Object
x-oss-server-side-encryption Object
Object x-oss-server-side-encryption
Object x-oss-server-side-encryption
Object
Object
9) x-oss-metadata-directive COPY
Object x-oss-server-side-encryption Object
COPY x-oss-server-side-encryption
HTTP/1.1 200 OK
x-oss-request-id: 3dfb2597-72a0-b3f7-320f-8b6627a96e68
Content-Type: application/xml
Content-Length: 193
Connection: close
Date: Fri, 24 Feb 2012 07:18:48 GMT
Server: AliyunOSS
44
Put Object
Get Object
Delete Object
45
5.4.2
Delete Object
DeleteObject Object
1) DeleteObject Object
2) Object OSS 204 No Content
3) Bucket 404 Not Found
Put Object
Get Object
Delete Multiple Objects
46
5.4.3
</Delete>
(Request Elements)
Delete
ObjectQuiet
None.
Key
Object
Object
Object
Object
47
key
Delete.
Quiet
true | false
false
Delete
(Response Elements)
Deleted
Object
Key
DeleteResult
DeleteResult
Deleted
None
Key
OSSObject
Deleted
Object MalformedXML
I
POST /?delete HTTP/1.1
Host: oss-example.oss.aliyuncs.com
Date: Wed, 29 Feb 2012 12:26:16 GMT
Content-Length:151
Content-MD5: fae2e404736a78a0067b62d80b1cc7d8
Authorization: OSS qn6qrrqxo2oawuk53otfjbyc:+z3gBfnFAxBcBDgx27Y/jEfbfu8=
HTTP/1.1 200 OK
x-oss-request-id: 78320852-7eee-b697-75e1-b6db0f4849e7
Date: Wed, 29 Feb 2012 12:26:16 GMT
Content-Length: 244
Content-Type: application/xml
Connection: close
Server: AliyunOSS
</Deleted>
</DeleteResult>
II
POST /?delete HTTP/1.1
Host: oss-example.oss.aliyuncs.com
Date: Wed, 29 Feb 2012 12:33:45 GMT
Content-Length:151
Content-MD5: fae2e404736a78a0067b62d80b1cc7d8
Authorization: OSS qn6qrrqxo2oawuk53otfjbyc:WuV0Jks8RyGSNQrBca64kEExJDs=
HTTP/1.1 200 OK
x-oss-request-id: 501ad9bb-1383-771d-0ee9-59a810bd5fde
Date: Wed, 29 Feb 2012 12:33:45 GMT
Content-Length: 0
Connection: close
Server: AliyunOSS
Delete Object
50
5.4.4
Get Object
Object Object
response-content-type
OSScontent-type
OSScontent-language
response-content-language
OSSexpires
response-expires
OSScache-control
response-cache-control
response-content-disposition
OSScontent-disposition
OSScontent-encoding
response-content-encoding
Header
Range
bytes=0-90910
51
If-Modified-Since
200 OK
304 not modified
If-Unmodified-Since
If-Match
ETagobject ETag200 OK
412 precondition failed
If-None-Match
ETagObjectETag,200 OK
304 Not Modified
2) Range
Content-Range: bytes 0-9/44
44 0-9
Content-Range
3) If-Modified-Since
200 OK
4) If-Modified-Since If-Unmodified-Since If-Match
If-None-Match
5) If-Unmodified-Since If-Match
412 precondition failed
6) If-Modified-Since If-None-Match
304 Not Modified
7) 404 Not Found NoSuchKey
52
8) OSS GET
header
9) OSS Header
200 OSS header GET
10) Object GET
x-oss-server-side-encryption
Object
HTTP/1.1 200 OK
x-oss-request-id: 3a89276f-2e2d-7965-3ff9-51c875b99c41
Date: Fri, 24 Feb 2012 06:38:30 GMT
Last-Modified: Fri, 24 Feb 2012 06:07:48 GMT
ETag: "5B3C1A2E053D763E1B002CC607C5A0FE "
Content-Type: image/jpg
Content-Length: 344606
Server: AliyunOSS
Range
GET //oss.jpg HTTP/1.1
Host:oss-example. oss.aliyuncs.com
Date: Fri, 28 Feb 2012 05:38:42 GMT
Range: bytes=100-900
Authorization: OSS qn6qrrqxo2oawuk53otfjbyc:qZzjF3DUtd+yK16BdhGtFcCVknM=
Accept-Ranges: bytes
Content-Range: bytes 100-900/344606
Content-Type: image/jpg
Content-Length: 801
Server: AliyunOSS
URL
GET
/oss.jpg?response-expires=Thu%2C%2001%20Feb%202012%2017%3A00%3A00%20GMT&
response-content-type=text&response-cache-control=No-cache&response-content-disposition=attachment%253B
%2520filename%253Dtesting.txt&response-content-encoding=utf-8&response-content-language=%E4%B8%AD
%E6%96%87 HTTP/1.1
Host: oss-example.oss.aliyuncs.com:
Date: Fri, 24 Feb 2012 06:09:48 GMT
HTTP/1.1 200 OK
x-oss-request-id: 1144d124-055c-4052-2c65-a1e3439d41c1
Date: Fri, 24 Feb 2012 06:09:48 GMT
Last-Modified: Fri, 24 Feb 2012 06:07:48 GMT
ETag: "5B3C1A2E053D763E1B002CC607C5A0FE "
Content-Length: 344606
Connection: close
Content-disposition: attachment; filename:testing.txt
Content-language:
Content-encoding: utf-8
Content-type: text
Cache-control: no-cache
Expires: Fri, 24 Feb 2012 17:00:00 GMT
Server: AliyunOSS
Get Object
Delete Object
54
5.4.5
Head Object
Header
If-Modified-Since
If-Unmodified-Since
200 OKObject
Meta412 precondition failed
If-Match
If-None-Match
HTTP/1.1 200 OK
x-oss-request-id: 06d4be30-2216-9264-757a-8f8b19b254bb
Date: Fri, 24 Feb 2012 07:32:52 GMT
Last-Modified: Fri, 24 Feb 2012 06:07:48 GMT
ETag: "fba9dede5f27731c9771645a39863328"
Content-Length: 344606
Content-Type: image/jpg
Connection: close
Server: AliyunOSS
Put Object
Get Object
56
5.4.6
Put Object
Put Object
Header
Cache-Control
ObjectRFC2616
Content-Disposition
ObjectRFC2616
Content-Encoding
ObjectRFC2616
Expires
milliseconds
RFC2616
x-oss-server-side-encry
ption
ossobject
AES256
57
3) Object
200 OK
4) PutObject x-oss-meta- user
meta x-oss-meta-location Object
user meta 2k
5) Head Content length 411 Length Required
MissingContentLength
6) Body body
time out 400 Bad Request
RequestTimeout OSS
AES256
400
InvalidEncryptionAlgorithmError Header
58
PUT /oss.jpg HTTP/1.1
Host: oss-example.oss.aliyuncs.com
Cache-control: no-cache
Expires: Fri, 28 Feb 2012 05:38:42 GMT
Content-Encoding: utf-8
Content-Disposition: attachment;filename=oss_download.jpg
Date: Fri, 24 Feb 2012 06:03:28 GMT
Content-Type: image/jpg
Content-Length: 344606
Authorization: OSS qn6qrrqxo2oawuk53otfjbyc:kZoYNv66bsmc10+dcGKw5x2PRrk=
HTTP/1.1 200 OK
x-oss-request-id: 61d2042d-1b68-6708-5906-33d81921362e
Date: Fri, 24 Feb 2012 06:03:28 GMT
ETag: 5B3C1A2E053D763E1B002CC607C5A0FE
Connection: close
Content-Length: 0
Server: AliyunOSS
Get Object
Delete Object
59
100MB
OSS
5.5.1
Header
Cache-Control
ObjectRFC2616
Content-Disposition
ObjectRFC2616
Content-Encoding
ObjectRFC2616
60
Expires
milliseconds
RFC2616
x-oss-server-side-encryption
ObjectpartOSS
part
AES256
(Response Elements)
Bucket
Multipart UploadBucket
InitiateMultipartUploadResult
InitiateMultipartUploadResult
Key
InitiateMultipartUploadResult
UploadId
Multipart UploadID
InitiateMultipartUploadResult
1) ?uploads CanonicalizedResource
UploadID Multipart
5) Multipart Upload x-oss-server-side-encryption
Header Header part
part OSS 256
AES256 400
InvalidEncryptionAlgorithmError part
x-oss-server-side-encryption OSS 400
InvalidArgument
HTTP/1.1 200 OK
Content-Length: 230
Server: AliyunOSS
Connection: close
x-oss-request-id: 42c25703-7503-fbd8-670a-bda01eaec618
Date: Wed, 22 Feb 2012 08:32:21 GMT
Content-Type: application/xml
62
5.5.2
Upload Part
:
PUT /multipart.data?partNumber=1&uploadId=0004B9895DBBB6EC98E36 HTTP/1.1
Host: oss-example.oss.aliyuncs.com
Content-Length6291456
Date: Wed, 22 Feb 2012 08:32:21 GMT
Authorization: OSS qn6qrrqxo2oawuk53otfjbyc:J/lICfXEvPmmSW86bBAfMmUmWjI=
:
HTTP/1.1 200 OK
Server: AliyunOSS
Connection: close
ETag: 7265F4D211B56873A381D321F586E4A9
x-oss-request-id: 3e6aba62-1eae-d246-6118-8ff42cd0c21a
Date: Wed, 22 Feb 2012 08:32:21 GMT
64
5.5.3
<CompleteMultipartUpload>
<Part>
<PartNumber>PartNumber</PartNumber>
<ETag>ETag</ETag>
</Part>
...
</CompleteMultipartUpload>
(Request Elements)
CompleteMultipartUpload
Part
ETag
PartOSSETag
Part
Part
Part
ETag, PartNumber
InitiateMultipartUploadResult
PartNumber
Part
65
Part
(Response Elements)
Bucket
Bucket
CompleteMultipartUploadResult
CompleteMultipartUploadResult
ETag
CompleteMultipartUploadResult
Location
ObjectURL
CompleteMultipartUploadResult
Object
Key
CompleteMultipartUploadResult
Object Upload ID
6) Initiate Multipart Upload x-oss-server-side-encryption
Complete Multipart Upload
x-oss-server-side-encryption Object
:
POST /multipart.data? uploadId=0004B9B2D2F7815C432C9057C03134D4 HTTP/1.1
Host: oss-example.oss.aliyuncs.com
Content-Length: 1056
Date: Fri, 24 Feb 2012 10:19:18 GMT
Authorization: OSS qn6qrrqxo2oawuk53otfjbyc:8VwFhFUWmVecK6jQlHlXMK/zMT0=
<CompleteMultipartUpload>
<Part>
<PartNumber>1</PartNumber>
<ETag>"3349DC700140D7F86A078484278075A9"</ETag>
</Part>
<Part>
<PartNumber>5</PartNumber>
<ETag>"8EFDA8BE206636A695359836FE0A0E0A"</ETag>
</Part>
<Part>
<PartNumber>8</PartNumber>
<ETag>"8C315065167132444177411FDA149B92"</ETag>
</Part>
</CompleteMultipartUpload>
:
HTTP/1.1 200 OK
Server: AliyunOSS
Content-Length: 329
Content-Type: Application/xml
Connection: close
x-oss-request-id: 594f0751-3b1e-168f-4501-4ac71d217d6e
Date: Fri, 24 Feb 2012 10:19:18 GMT
<ETag>"B864DB6A936D376F9F8D3ED3BBE540DD-3"</ETag>
</CompleteMultipartUploadResult>
68
5.5.4
:
Delete /multipart.data?partNumber=1&uploadId=0004B9895DBBB6EC98E HTTP/1.1
Host: oss-example.oss.aliyuncs.com
Date: Wed, 22 Feb 2012 08:32:21 GMT
Authorization: OSS qn6qrrqxo2oawuk53otfjbyc:J/lICfXEvPmmSW86bBAfMmUmWjI=
:
HTTP/1.1 204
Server: AliyunOSS
Connection: close
x-oss-request-id: 059a22ba-6ba9-daed-5f3a-e48027df344d
Date: Wed, 22 Feb 2012 08:32:21 GMT
5.5.5
delimiter
Object
delimiterobjectCommonPrefixes
max-uploads
Multipart Uploads1000max-keys
1000
key-marker
upload-id-marker
upload-id-markerObject
key-markerMultipart
upload-id-markerObject
prefix
object keyprefixprefixkey
prefix
upload-id-marker
key-marker
key-markerOSSupload-id-marker
key-markerObject
key-markerMultipartObjectkey-markerUpload
70
IDupload-id-markerMultipart Uploads
(Response Elements)
ListMultipartUploadsResult
Bucket,
KeyMarker,
UploadIdMarker,
NextKeyMarker,
Bucket
ListMultipartUploadsResult
KeyMarker
Object
ListMultipartUploadsResult
UploadIdMarker
UploadID
ListMultipartUploadsResult
NextKeyMarker
NextKeyMarker
KeyMarker
ListMultipartUploadsResult
NextUploadMarker
NextUploadMarker
UploadMarker
ListMultipartUploadsResult
MaxUploads
Upload
ListMultipartUploadsResult
IsTruncated
Multipart Upload
true
false
false | true
false
ListMultipartUploadsResult
Upload
Multipart Upload
Key
Multipart UploadObject
71
Upload
UploadId
Multipart UploadID
Upload
Initiated
Multipart Upload.
Upload
1) max-uploads 1000
2) OSS Object Object
:
Get /?uploads
HTTP/1.1
Host:oss-example. oss.aliyuncs.com
Date: Thu, 23 Feb 2012 06:14:27 GMT
Authorization: OSS qn6qrrqxo2oawuk53otfjbyc:JX75CtQqsmBBz+dcivn7kwBMvOY=
:
HTTP/1.1 200
Server: AliyunOSS
Connection: close
Content-length: 1839
Content-type: application/xml
x-oss-request-id: 58a41847-3d93-1905-20db-ba6f561ce67a
Date: Thu, 23 Feb 2012 06:14:27 GMT
<UploadIdMarker></UploadIdMarker>
<NextKeyMarker>oss.avi</NextKeyMarker>
<NextUploadIdMarker>0004B99B8E707874FC2D692FA5D77D3F</NextUploadIdMarker>
<Delimiter></Delimiter>
<Prefix></Prefix>
<MaxUploads>1000</MaxUploads>
<IsTruncated>false</IsTruncated>
<Upload>
<Key>multipart.data</Key>
<UploadId>0004B999EF518A1FE585B0C9360DC4C8</UploadId>
<Initiated>2012-02-23T04:18:23.000Z</Initiated>
</Upload>
<Upload>
<Key>multipart.data</Key>
<UploadId>0004B999EF5A239BB9138C6227D69F95</UploadId>
<Initiated>2012-02-23T04:18:23.000Z</Initiated>
</Upload>
<Upload>
<Key>oss.avi</Key>
<UploadId>0004B99B8E707874FC2D692FA5D77D3F</UploadId>
<Initiated>2012-02-23T06:14:27.000Z</Initiated>
</Upload>
</ListMultipartUploadsResult>
73
5.5.6
List Parts
Get
/ObjectName?uploadId=UploadId HTTP/1.1
Host: BucketName.oss.aliyuncs.com
Date: GMT Date
Authorization: Signature
(Request Parameters)
uploadId
Multipart UploadID
max-parts
OSSPart
1,000
part-number-marker
ListPart NumberPart
(Response Elements)
ListPartsResult
List Part
Bucket,
Key,
UploadId,
Bucket
Bucket
ListPartsResult
Key
Object
ListPartsResult
UploadId
UploadID
ListPartsResult
PartNumberMarker
ListPart Number
74
PartNumberMarker,
ListPartsResult
NextPartNumberMarker
NextPartNumberMarker
PartNumberMarker.
ListPartsResult
MaxParts
Part
ListPartsResult
IsTruncated
List Part
true
false
true | false
ListPartsResult
Part
Part
Part
ListPartsResult.Part
LastModified
Part
ListPartsResult.part
PartETag
ETag
ListPartsResult.Part
Part
Size
ListPartsResult.Part
3) OSS Part
4) List Part Part Number
ETag Complete Multipart Part
:
75
Get
/multipart.data?uploadId=0004B999EF5A239BB9138C6227D69F95
HTTP/1.1
Host: oss-example.oss.aliyuncs.com
Date: Thu, 23 Feb 2012 07:13:28 GMT
Authorization: OSS qn6qrrqxo2oawuk53otfjbyc:4qOnUMc9UQWqkz8wDqD3lIsa9P8=
:
HTTP/1.1 200
Server: AliyunOSS
Connection: close
Content-length: 1221
Content-type: application/xml
x-oss-request-id: 106452c8-10ff-812d-736e-c865294afc1c
Date: Thu, 23 Feb 2012 07:13:28 GMT
76
77
6. OSS
OSS OSS
6.1 OSS
OSS OSS 3xx4xx 5xx
HTTP application/xml
CodeOSS
MessageOSS
RequestId UUID
RequestId OSS
78
6.2 OSS
OSS
AccessDenied
403
BucketAlreadyExists
Bucket
409
BucketNotEmpty
Bucket
409
EntityTooLarge
400
EntityTooSmall
400
FileGroupTooLarge
400
FilePartNotExist
Part
400
FilePartStale
Part
400
InvalidArgument
400
InvalidAccessKeyId
Access Key ID
403
InvalidBucketName
Bucket
400
InvalidDigest
400
400
InvalidObjectName
Object
400
InvalidPart
Part
400
InvalidPartOrder
part
400
Logging bucket
400
InternalError
OSS
500
MalformedXML
XML
400
MethodNotAllowed
405
MissingArgument
411
MissingContentLength
411
NoSuchBucket
Bucket
404
InvalidEncryptionAlgorit
HTTP
hmError
InvalidTargetBucketFor
Logging
79
NoSuchKey
404
NoSuchUpload
Multipart Upload ID
404
NotImplemented
501
PreconditionFailed
412
15
RequestTimeTooSkewed
403
RequestTimeout
400
SignatureDoesNotMatch
403
TooManyBuckets
Bucket
400
80
6.3 OSS
HTTP (Chunked Transfer Encoding)
HTTP HTTP HTTP
OSS OSS
HTTP 411 HTTP
The request must be chunked or have a content length
81
6.4 OSS
OSS 405 Method Not Allowed
abc / HTTP/1.1
Host:oss-example. oss.aliyuncs.com
Date: date
Authorization: signatureValue
x-oss-request-id: 2403382433A2EDA8
Allow: GET, DELETE, HEAD, PUT
Content-Type: application/xml
Transfer-Encoding: chunked
Date: Thu, 31 Mar 2011 10:01:52 GMT
Server: AliyunOSS
83
6.5 OSS
OSS OSS PUT
If-Modified-Since OSS 501 Not Implemented
84