是否有Google云端存储模拟器?

时间:2016-05-31 09:58:24

标签: google-cloud-storage cloud-storage

出于测试目的,我想模拟云存储,因为它会减慢测试速度。

是否有Google云端存储模拟器?

2 个答案:

答案 0 :(得分:12)

Google可以使用in-memory emulator(大多数核心功能都已实施)。

您的测试类路径(com.google.cloud:google-cloud-nio当前)需要:0.25.0-alpha。然后,您可以使用内存Storage测试助手服务实现的/ inject 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)
    );
  }

答案 1 :(得分:6)

目前还没有Google提供的官方模拟器。

我目前正在使用项目Minio(https://www.minio.io/)来模拟Google Storage在开发中的行为(Minio使用文件系统作为存储后端,并提供与S3 apiV2的兼容性,后者与Google兼容存储)。