Использует ли Google Cloud Storage Bucket Amazon S3? - PullRequest
1 голос
/ 23 апреля 2019

Я настроил Google Cloud Storage Bucket с index.html и test.html и то, что я вижу, когда захожу в свой домен:

См .: 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>

и т.д ..

У меня нет учетной записи Amazon.

Ответы [ 2 ]

6 голосов
/ 23 апреля 2019

Несмотря на то, что эта строка присутствует в пространстве имен, ответ на этот запрос не поступает от AWS.

Облачное хранилище Google (GCS) имеет два API.Один из них основан на JSON и выглядит как большинство API Google (называемый JSON API), а другой - на основе XML и предназначен для взаимодействия с некоторыми инструментами облачного хранилища и библиотеками, которые работают с S3.Идея состоит в том, что, если вы уже используете такой инструмент, такой как библиотека boto Python, использование GCS может быть достигнуто путем изменения URL-адреса и учетных данных.Клиенты, анализирующие ответы XML, вероятно, проверяют пространства имен XML, и поэтому они ожидают увидеть что-то вроде строки "http://doc.s3.amazonaws.com/2006-03-01" как часть протокола.

Вы отправляете запрос в API XML (либочерез storage.googleapis.com, BUCKET_NAME.storage.googleapis.com или с помощью перенаправления CNAME DNS в облачное хранилище), поэтому полученное сообщение пытается дать совместимый ответ.

2 голосов
/ 23 апреля 2019

Если мы посмотрим на документацию по XML API, найденную здесь , то увидим, что все здесь соответствует ожиданиям.То, что мы видим, это XML-документ, который имеет пространство имен XML с именем http://doc.s3.amazonaws.com/2006-03-01.Думайте об этом как о декларации об использовании именованного типа данных.Похоже, что этот тип данных (ListBucketResult) был определен AWS (Amazon), и GCP решила повторно использовать эту спецификацию в своей собственной реализации, а не просто реализовать совершенно новую спецификацию, которая, вероятно, была бы семантически идентична той, котораяуже существовал.Повторное использование интерфейсов, как правило, хорошо для всех.Вероятно, это будет означать более простую переносимость и меньшую привязку к поставщику, чтобы иметь возможность выбрать другого облачного провайдера, если вам нужно.

Я собираюсь предположить, что AWS первым предоставил облачное хранилище больших двоичных объектов и настроил его.прецедент.Довольно часто можно увидеть пространства имен XML, которые описывают открытые стандарты.Я также собираюсь предположить, что не существует текущей спецификации открытых стандартов для того, что должен предоставлять поставщик облачных хранилищ.Таким образом, у Amazon есть S3, у Google есть облачное хранилище Google, а у Azure есть хранилище BLOB-объектов Azure.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...