出于测试目的,我想模拟云存储,因为它会减慢测试速度。
是否有Google云端存储模拟器?
答案 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兼容存储)。