有Google云存储模拟器吗?
Is there Google Cloud Storage emulator?
出于测试目的,我想模拟云存储,因为它会减慢测试速度。
有Google云存储模拟器吗?
Google暂时没有提供官方模拟器
我目前正在使用项目 Minio (https://www.minio.io/) 来模拟 Google 存储在开发中的行为(Minio 使用文件系统作为存储后端并提供与 S3 apiV2 的兼容性,它与 Google存储)。
Google 有一个 in-memory emulator 可以使用(大部分核心功能已实现)。
您的测试类路径中需要 com.google.cloud:google-cloud-nio
(当前为 :0.25.0-alpha
)。然后你可以 use/inject Storage
内存中 LocalStorageHelper
test-helper 服务实现的接口。
用法示例:
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)
);
}
出于测试目的,我想模拟云存储,因为它会减慢测试速度。
有Google云存储模拟器吗?
Google暂时没有提供官方模拟器
我目前正在使用项目 Minio (https://www.minio.io/) 来模拟 Google 存储在开发中的行为(Minio 使用文件系统作为存储后端并提供与 S3 apiV2 的兼容性,它与 Google存储)。
Google 有一个 in-memory emulator 可以使用(大部分核心功能已实现)。
您的测试类路径中需要 com.google.cloud:google-cloud-nio
(当前为 :0.25.0-alpha
)。然后你可以 use/inject Storage
内存中 LocalStorageHelper
test-helper 服务实现的接口。
用法示例:
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)
);
}