Облачное хранилище Google обеспечивает облачное хранилище файлов через наборы API, например:
Загрузка:
InputStream content = new ByteArrayInputStream("Hello, World!".getBytes(UTF_8));
Blob blob = bucket.create(blobName, content, "text/plain");
Загрузка:
private void run(Storage storage, String bucketName, String objectName, Path downloadTo) throws IOException {
BlobId blobId = BlobId.of(bucketName, objectName);
Blob blob = storage.get(blobId);
if (blob == null) {
System.out.println("No such object");
return;
}
PrintStream writeTo = System.out;
if (downloadTo != null) {
writeTo = new PrintStream(new FileOutputStream(downloadTo.toFile()));
}
if (blob.getSize() < 1_000_000) {
// Blob is small read all its content in one request
byte[] content = blob.getContent();
writeTo.write(content);
} else {
// When Blob size is big or unknown use the blob's channel reader.
try (ReadChannel reader = blob.reader()) {
WritableByteChannel channel = Channels.newChannel(writeTo);
ByteBuffer bytes = ByteBuffer.allocate(64 * 1024);
while (reader.read(bytes) > 0) {
bytes.flip();
channel.write(bytes);
bytes.clear();
}
}
}
if (downloadTo == null) {
writeTo.println();
} else {
writeTo.close();
}
}
Может ли это использоваться как хранилище Xodus вместо локальной файловой системы?Какие шаги необходимо предпринять, чтобы Xodus работал в облачной среде такого типа?