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