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

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

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

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

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

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

要了解如何使用安全凭据和 VMware Cloud Director Object Storage Extension API,请使用以下示例。
  1. 使用 VMware Cloud Director Object Storage Extension tenant portal 创建用户凭据。

    默认情况下,在创建过程中会激活新创建的用户凭据。

  2. 复制访问密钥和密钥。
  3. 记下在 VMware Cloud Director Object Storage Extension tenant portal 中显示的桶的名称。
  4. 在 API 客户端中,通过输入 API 端点以及访问密钥和安全密钥,使用 AWS 签名身份验证方法对您的 API 请求进行身份验证。
    例如,输入以下连接信息:
    API 端点 https://Cloud-Director-Object-Storage-Extension-IP-Andreas:443/api/v1/s3
    访问密钥 5a5af54cf34a172a511f
    密钥 omSG+UXSoyD1fbdFt0iia3I8I+f0QLSiIn5wpq1L
  5. 要列出用户凭据所有者拥有的所有桶,请运行 S3 API GET 请求。

    例如:

    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>

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