簡體   English   中英

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在:

    <?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>

等等..

我沒有亞馬遜賬戶。

盡管命名空間中存在該字符串,但對該請求的響應並非來自 AWS。

Google Cloud Storage (GCS) 有兩個 API。 一個是基於 JSON 的,看起來像 Google 的大多數 API(稱為 JSON API),另一個是基於 XML 的,旨在與一些使用 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),因此生成的消息會嘗試提供可互操作的響應。

如果我們查看 此處找到的 XML API 文檔,我們會發現 此處的所有內容都符合預期。 我們看到的是一個 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。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM