Есть ли эмулятор Google Cloud Storage?

В целях тестирования я хотел бы издеваться над облачным хранилищем, потому что оно замедляет тестирование.

Есть ли эмулятор Google Cloud Storage?

3 ответа

Решение

В настоящее время Google не предоставляет официальный эмулятор.

В настоящее время я использую проект Minio ( https://www.minio.io/) для насмешки над поведением Google Storage в процессе разработки (Minio использует файловую систему в качестве бэкэнда хранилища и обеспечивает совместимость с S3 apiV2, который совместим с Google Storage).

У Google есть эмулятор в памяти, который вы можете использовать (большинство основных функций реализовано).

Тебе нужно com.google.cloud:google-cloud-nio на вашем тестовом пути (:0.25.0-alpha В настоящее время). Тогда вы можете использовать / ввести Storage интерфейс реализован в памяти LocalStorageHelper тест-помощник службы.

Пример использования:

  import com.google.cloud.storage.Storage;
  import com.google.cloud.storage.contrib.nio.testing.LocalStorageHelper;

  @Test
  public void exampleInMemoryGoogleStorageTest() {
    Storage storage = LocalStorageHelper.getOptions().getService();

    final String blobPath = "test/path/foo.txt";
    final String testBucketName = "test-bucket";
    BlobInfo blobInfo = BlobInfo.newBuilder(
        BlobId.of(testBucketName, blobPath)
    ).build();

    storage.create(blobInfo, "randomContent".getBytes(StandardCharsets.UTF_8));
    Iterable<Blob> allBlobsIter = storage.list(testBucketName).getValues();
    // expect to find the blob we saved when iterating over bucket blobs
    assertTrue(
        StreamSupport.stream(allBlobsIter.spliterator(), false)
            .map(BlobInfo::getName)
            .anyMatch(blobPath::equals)
    );
  }

Похоже, что теперь в бета-версии доступен эмулятор хранилища данных.

Инструкции (установки) для Linux/Windows можно найти здесь

Для Linux их можно обобщить следующим образом:

  1. Для установки требуется Java JRE 7+.
  2. Затем эмулятор устанавливается с помощью команды:
    gcloud components install cloud-datastore-emulator
  3. После установки запустите эмулятор, выполнив:
    gcloud beta emulators datastore start
  4. При работающем эмуляторе настройте некоторые переменные среды, которые сообщают вашему приложению об использовании эмулированного хранилища данных с помощью:
    (gcloud beta emulators datastore env-init)
  5. А теперь запустите ваше приложение как обычно, и оно должно использовать эмулированное хранилище данных.
Другие вопросы по тегам