Google Cloud Storage Bucket 是否使用 Amazon S3?
Does Google Cloud Storage Bucket use Amazon S3?
我确实用 index.html 和 test.html 设置了一个 Google Cloud Storage Bucket 和我看到的,当我去我的域:
参见:doc.s3.amazonaws.com/2006-03-01 in:
<?xml version='1.0' encoding='UTF-8'?>
<ListBucketResult xmlns='http://doc.s3.amazonaws.com/2006-03-01'>
<Name>my-domain.com</Name>
<Prefix></Prefix>
<Marker></Marker>
<IsTruncated>false</IsTruncated>
<Contents><Key>index.html</Key>
<Generation>1555969892676799</Generation>
<MetaGeneration>1</MetaGeneration>
<LastModified>2019-04-22T21:51...</LastModified>
<ETag>"...."</ETag>
<Size>25</Size></Contents><Contents>
<Key>test.html</Key>
等..
我没有亚马逊账号。
如果我们查看 XML API 发现的 here 的文档,我们会发现这里的一切都符合预期。我们看到的是一个 XML 文档,它有一个名为 http://doc.s3.amazonaws.com/2006-03-01
的 XML 命名空间。将此视为命名数据类型的使用声明。看起来这个数据类型(ListBucketResult
)是由 AWS(亚马逊)指定的,GCP 决定在它自己的实现中重新使用这个规范,而不是仅仅实现一个可能在语义上与已经存在的。接口的重用通常对所有人来说都是一件好事。这可能意味着更容易的可移植性和更少的供应商锁定,以便能够在您需要时选择不同的云提供商。
我猜 AWS 是第一个提供云 blob 存储的公司,并且开创了先例。描述开放标准的 XML 个命名空间很常见。我还猜测目前没有关于云存储提供商应该提供什么的开放标准规范。所以 Amazon 有 S3,Google 有 Google Cloud Storage,而 Azure 有 Azure Blob Storage。
尽管命名空间中存在该字符串,但对该请求的响应并非来自 AWS。
Google 云存储 (GCS) 有两个 API。一个是基于 JSON 的,看起来像大多数 Google 的 API(称为 JSON API),另一个是 XML-based,旨在与一些与 S3 一起使用的云存储工具和库进行互操作。这个想法是,如果您已经使用了这样的工具,例如 Python boto 库,则可以通过更改 URL 和凭据来使用 GCS。解析 XML 响应的客户端可能会验证 XML 名称空间,因此他们希望看到类似字符串“http://doc.s3.amazonaws.com/2006-03-01”的内容作为协议的一部分。
您正在向 XML API 发送请求(通过 storage.googleapis.com、BUCKET_NAME.storage.googleapis.com 或通过 CNAME DNS 重定向到 Cloud Storage),因此生成的消息会尝试提供可互操作的响应。
我确实用 index.html 和 test.html 设置了一个 Google Cloud Storage Bucket 和我看到的,当我去我的域:
参见:doc.s3.amazonaws.com/2006-03-01 in:
<?xml version='1.0' encoding='UTF-8'?>
<ListBucketResult xmlns='http://doc.s3.amazonaws.com/2006-03-01'>
<Name>my-domain.com</Name>
<Prefix></Prefix>
<Marker></Marker>
<IsTruncated>false</IsTruncated>
<Contents><Key>index.html</Key>
<Generation>1555969892676799</Generation>
<MetaGeneration>1</MetaGeneration>
<LastModified>2019-04-22T21:51...</LastModified>
<ETag>"...."</ETag>
<Size>25</Size></Contents><Contents>
<Key>test.html</Key>
等..
我没有亚马逊账号。
如果我们查看 XML API 发现的 here 的文档,我们会发现这里的一切都符合预期。我们看到的是一个 XML 文档,它有一个名为 http://doc.s3.amazonaws.com/2006-03-01
的 XML 命名空间。将此视为命名数据类型的使用声明。看起来这个数据类型(ListBucketResult
)是由 AWS(亚马逊)指定的,GCP 决定在它自己的实现中重新使用这个规范,而不是仅仅实现一个可能在语义上与已经存在的。接口的重用通常对所有人来说都是一件好事。这可能意味着更容易的可移植性和更少的供应商锁定,以便能够在您需要时选择不同的云提供商。
我猜 AWS 是第一个提供云 blob 存储的公司,并且开创了先例。描述开放标准的 XML 个命名空间很常见。我还猜测目前没有关于云存储提供商应该提供什么的开放标准规范。所以 Amazon 有 S3,Google 有 Google Cloud Storage,而 Azure 有 Azure Blob Storage。
尽管命名空间中存在该字符串,但对该请求的响应并非来自 AWS。
Google 云存储 (GCS) 有两个 API。一个是基于 JSON 的,看起来像大多数 Google 的 API(称为 JSON API),另一个是 XML-based,旨在与一些与 S3 一起使用的云存储工具和库进行互操作。这个想法是,如果您已经使用了这样的工具,例如 Python boto 库,则可以通过更改 URL 和凭据来使用 GCS。解析 XML 响应的客户端可能会验证 XML 名称空间,因此他们希望看到类似字符串“http://doc.s3.amazonaws.com/2006-03-01”的内容作为协议的一部分。
您正在向 XML API 发送请求(通过 storage.googleapis.com、BUCKET_NAME.storage.googleapis.com 或通过 CNAME DNS 重定向到 Cloud Storage),因此生成的消息会尝试提供可互操作的响应。