@ParametersAreNonnullByDefault
See: Description
Interface | Description |
---|---|
CloudStorageFileAttributes |
Interface for attributes on a Cloud Storage file or pseudo-directory.
|
CloudStorageOption |
Master interface for file operation option classes related to Google Cloud Storage.
|
CloudStorageOption.Copy |
Interface for Google Cloud Storage options that can be specified when copying files.
|
CloudStorageOption.Open |
Interface for Google Cloud Storage options that can be specified when opening files.
|
CloudStorageOption.OpenCopy |
Interface for Google Cloud Storage options that can be specified when opening or copying files.
|
Class | Description |
---|---|
CloudStorageConfiguration |
Configuration for
CloudStorageFileSystem instances. |
CloudStorageConfiguration.Builder |
Builder for
CloudStorageConfiguration . |
CloudStorageFileAttributeView |
Metadata view for a Google Cloud Storage object.
|
CloudStorageFileSystem |
Google Cloud Storage
FileSystem implementation. |
CloudStorageFileSystemProvider |
Google Cloud Storage
FileSystemProvider implementation. |
CloudStorageOptions |
Helper class for specifying options when opening and copying Cloud Storage files.
|
CloudStoragePath |
Google Cloud Storage
Path . |
CloudStorageRetryHandler |
Simple counter class to keep track of retry and reopen attempts when StorageExceptions are
encountered.
|
SeekableByteChannelPrefetcher |
SeekableByteChannelPrefetcher wraps an existing SeekableByteChannel to add prefetching.
|
SeekableByteChannelPrefetcher.Statistics |
Exception | Description |
---|---|
CloudStorageObjectImmutableException |
Exception reminding user that Cloud Storage objects can't be mutated.
|
CloudStoragePseudoDirectoryException |
Exception thrown when erroneously trying to operate on a path with a trailing slash.
|
This client library allows you to easily interact with Google Cloud Storage, using Java's standard file system API, introduced in Java 7.
Paths
and Files
:
Path path = Paths.get(URI.create("gs://bucket/lolcat.csv"));
List<String> lines = Files.readAllLines(path, StandardCharsets.UTF_8);
For the complete source code see ReadAllLines.java.
If you want to configure the bucket per-environment, it might make more sense to use the
FileSystem
API:
FileSystem fs = FileSystems.getFileSystem(URI.create("gs://bucket"));
byte[] data = "hello world".getBytes(StandardCharsets.UTF_8);
Path path = fs.getPath("/object");
Files.write(path, data);
List<String> lines = Files.readAllLines(path, StandardCharsets.UTF_8);
For the complete source code see GetFileSystem.java.
You can also use InputStream
and OutputStream
for streaming:
Path path = Paths.get(URI.create("gs://bucket/lolcat.csv")); try (InputStream input = Files.newInputStream(path)) { // use input stream }
For the complete source code see CreateInputStream.java.
You can set various attributes using CloudStorageOptions
static helpers:
Path path = Paths.get(URI.create("gs://bucket/lolcat.csv")); Files.write(path, csvLines, StandardCharsets.UTF_8, withMimeType("text/csv; charset=UTF-8"), withoutCaching());
For the complete source code see WriteFileWithAttributes.java.
NOTE: Cloud Storage uses a flat namespace and therefore doesn't support real
directories. So this library supports what's known as "pseudo-directories". Any path that
includes a trailing slash, will be considered a directory. It will always be assumed to exist,
without performing any I/O. This allows you to do path manipulation in the same manner as you
would with the normal UNIX file system implementation. You can disable this feature with CloudStorageConfiguration.usePseudoDirectories()
.
If you don't want to rely on Java SPI, which requires a META-INF file in your jar generated by Google Auto, you can instantiate this file system directly as follows:
CloudStorageFileSystem fs = CloudStorageFileSystem.forBucket("bucket"); byte[] data = "hello world".getBytes(StandardCharsets.UTF_8); Path path = fs.getPath("/object"); Files.write(path, data); data = Files.readAllBytes(path);
For the complete source code see CreateCloudStorageFileSystem.java.
Copyright © 2019 Google LLC. All rights reserved.