vCloud Director Object Storage Extension 为桶和对象操作提供了一组 S3 兼容的 API。

vCloud Director Object Storage Extension API 支持 AWS 签名 v4、vCloud Director 授权令牌和 JSON Web 令牌 (JSON Web Token, JWT) 身份验证方法。

vCloud Director Object Storage Extension API 支持 JSON 和 XML 格式。

默认情况下,vCloud Director Object Storage Extension 的 S3 API 可在 https://object-storage-extension-host-address/api/v1/s3 找到。根据服务提供商的网络配置,vCloud Director Object Storage Extension 的地址和 S3 API 的根路径可能与默认配置有所不同。

vCloud Director Object Storage Extension S3 API 文档随产品提供,可在 https://object-storage-extension-host-address/docs 及 VMware API Explorer(网址为 https://code.vmware.com/apis)中的 vCloud Director Object Storage Extension 产品类别下找到。

使用安全凭据和 vCloud Director Object Storage Extension API

要了解如何使用安全凭据和 vCloud Director Object Storage Extension API,请查看以下示例。
  1. 使用 Object Storage Tenant Portal 创建用户凭据。默认情况下,在创建过程中会激活新创建的用户凭据。
  2. 复制访问密钥和密钥。
  3. 记下在 Object Storage Tenant Portal 中显示的桶的名称。
  4. 在 API 客户端中,通过输入 API 端点以及访问密钥和安全密钥,使用 AWS 签名身份验证方法对您的 API 请求进行身份验证。
    例如,输入以下连接信息:
    • API 端点:https://vCloud-Director-Object-Storage-Extension-IP-addres:443/api/v1/s3
    • 访问密钥:5a5af54cf34a172a511f
    • 密钥:omSG+UXSoyD1fbdFt0iia3I8I+f0QLSiIn5wpq1L
  5. 发出 S3 API GET 请求,以列出用户凭据的所有者拥有的所有桶。

    以下是 API 请求的示例:

    GET /api/v1/s3/ HTTP/1.1
    Host: vCloud-Director-Object-Storage-Extension-IP-addres:443
    Accept: application/xml
    X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
    X-Amz-Date: 20190717T014259Z
    Authorization: AWS4-HMAC-SHA256 Credential=5a5af54cf34a172a511f/20190717/us-east-1/s3/aws4_request, SignedHeaders=accept;host;x-amz-content-sha256;x-amz-date, Signature=a1a0cfdc34fd4275f567ef673f14d8ff963242d29c13515506a3a913e7f38415
    cache-control: no-cache
    
系统将返回桶中内容的以下 XML 表示形式:
<listBucketResult>
		<Name>bucket-name</Name>
		<KeyCount>1</KeyCount>
		<MaxKeys>1000</MaxKeys>
		<Contents>
			<Key>object-name</Key>
			<Owner>
				<ID>system-id-of-the-user</>
				<DisplayName>display-name-of-the-user</DisplayName>
			</Owner>
			<StorageClass>Storage-Class</StorageClass>
			<Size>object-size-in-KB</Size>
			<LastModified>last-modified-date</LastModified>
		</Contents>
		<IsTruncated>true-or-false</IsTruncated>
		<ContinuationToken>1-or-0</ContinuationToken>
</listBucketResult>

要获取用户凭据或应用程序凭据,请参见使用安全凭据