S3 Client
S3 Client
Alluxio支持RESTful API,兼容Amazon S3 API 的基本操作。
REST API 手册会在Alluxio构建时生成并且可以通过${ALLUXIO_HOME}/core/server/proxy/target/miredot/index.html获得。
使用HTTP代理会带来一些性能的影响,尤其是在使用代理的时候会增加一个额外的跳计数。为了达到最优的性能,推荐代理服务和一个Alluxio worker运行在一个计算节点上。或者,推荐将所有的代理服务器放到load balancer之后。
特性支持
下表描述了对当前Amazon S3基础特性的支持情况:
AbortMultipartUpload
None
CompleteMultipartUpload
None
CopyObject
Content-Type | x-amz-copy-source | x-amz-metadata-directive | x-amz-tagging-directive | x-amz-tagging
CreateBucket
None
CreateMultipartUpload
Content-Type | x-amz-tagging
DeleteBucket
None
DeleteBucketTagging
None
DeleteObject
None
DeleteObjects
None
DeleteObjectTagging
None
GetBucketTagging
None
GetObject
Range
None
GetObjectTagging
None
None
HeadBucket
None
None
HeadObject
None
None
ListBuckets
ListMultipartUploads
None
None
ListObjects
None
delimiter | encoding-type | marker | max-keys | prefix
ListObjectsV2
None
continuation-token | delimiter | encoding-type | max-keys | prefix | start-after
ListParts
None
None
PutBucketTagging
None
PutObject
Content-Length | Content-MD5 | Content-Type | x-amz-tagging
PutObjectTagging
None
None
UploadPart
Content-Length | Content-MD5
UploadPartCopy
x-amz-copy-source
语言支持
Alluxio S3 客户端支持各种编程语言,比如C++、Java、Python、Golang、Ruby等。在这个文档中,我们使用curl REST调用和python S3 client作为使用示例。
使用示例
REST API
举个例子,你可以使用如下的RESTful API调用方式在本地运行一个Alluxio集群。Alluxio代理会默认在39999端口监听。
创建bucket
获取bucket(objects列表)
加入object
假定本地现存一个文件LICENSE。
获取object
列出含有单个object的bucket
列出含有多个objects的bucket
你可以上传更多的文件并且使用max-keys和continuation-token作为GET bucket request参数,比如:
你还可以验证这些对象是否为Alluxio文件,在/testbucket目录下。
删除objects
初始化multipart upload
上传分块
罗列已上传的分块
完成multipart upload
中止multipart upload
删除空bucket
Python S3 Client
创建连接
创建bucket
加入small object
获取small object
上传large object
在本地文件系统创建一个8MB文件
使用python S3 client把它作为object上传
获取large objecy
删除objects
初始化multipart upload
上传分块
完成multipart upload
中止multipart upload
删除bucket
Last updated