public interface SnowflakeStorageClient
| Modifier and Type | Method and Description |
|---|---|
void |
addDigestMetadata(StorageObjectMetadata meta,
String digest)
Adds digest metadata to the StorageObjectMetadata object
|
void |
addEncryptionMetadata(StorageObjectMetadata meta,
MatDesc matDesc,
byte[] ivData,
byte[] encKeK,
long contentLength)
Adds encryption metadata to the StorageObjectMetadata object
|
void |
addStreamingIngestMetadata(StorageObjectMetadata meta,
String clientName,
String clientKey)
Adds streaming ingest metadata to the StorageObjectMetadata object, used for streaming ingest
per client billing calculation
|
void |
download(SFSession connection,
String command,
String localLocation,
String destFileName,
int parallelism,
String remoteStorageLocation,
String stageFilePath,
String stageRegion,
String presignedUrl)
Download a file from remote storage.
|
InputStream |
downloadToStream(SFSession connection,
String command,
int parallelism,
String remoteStorageLocation,
String stageFilePath,
String stageRegion,
String presignedUrl)
Download a file from remote storage
|
String |
getDigestMetadata(StorageObjectMetadata meta)
Gets digest metadata to the StorageObjectMetadata object
|
int |
getEncryptionKeySize() |
String |
getMatdescKey()
Returns the material descriptor key
|
int |
getMaxRetries() |
StorageObjectMetadata |
getObjectMetadata(String remoteStorageLocation,
String prefix)
Returns the metadata properties for a remote storage object
|
int |
getRetryBackoffMaxExponent()
Returns the max exponent for multiplying backoff with the power of 2, the value of 4 will give
us 16secs as the max number of time to sleep before retry
|
int |
getRetryBackoffMin() |
String |
getStreamingIngestClientKey(StorageObjectMetadata meta)
Gets streaming ingest client key to the StorageObjectMetadata object
|
String |
getStreamingIngestClientName(StorageObjectMetadata meta)
Gets streaming ingest client name to the StorageObjectMetadata object
|
void |
handleStorageException(Exception ex,
int retryCount,
String operation,
SFSession connection,
String command)
Handles exceptions thrown by the remote storage provider
|
boolean |
isEncrypting() |
StorageObjectSummaryCollection |
listObjects(String remoteStorageLocation,
String prefix)
For a set of remote storage objects under a remote location and a given prefix/path returns
their properties wrapped in ObjectSummary objects
|
void |
renew(Map<?,?> stageCredentials)
Re-creates the encapsulated storage client with a fresh access token
|
default boolean |
requirePresignedUrl() |
void |
shutdown()
shuts down the client
|
void |
upload(SFSession connection,
String command,
int parallelism,
boolean uploadFromStream,
String remoteStorageLocation,
File srcFile,
String destFileName,
InputStream inputStream,
FileBackedOutputStream fileBackedOutputStream,
StorageObjectMetadata meta,
String stageRegion,
String presignedUrl)
Upload a file (-stream) to remote storage
|
default void |
uploadWithPresignedUrlWithoutConnection(int networkTimeoutInMilli,
HttpClientSettingsKey ocspModeAndProxyKey,
int parallelism,
boolean uploadFromStream,
String remoteStorageLocation,
File srcFile,
String destFileName,
InputStream inputStream,
FileBackedOutputStream fileBackedOutputStream,
StorageObjectMetadata meta,
String stageRegion,
String presignedUrl)
Upload a file (-stream) to remote storage with Pre-signed URL without JDBC connection.
|
int getMaxRetries()
int getRetryBackoffMaxExponent()
int getRetryBackoffMin()
boolean isEncrypting()
int getEncryptionKeySize()
default boolean requirePresignedUrl()
void renew(Map<?,?> stageCredentials) throws SnowflakeSQLException
stageCredentials - a Map (as returned by GS) which contains the new credential propertiesSnowflakeSQLException - failure to renew the storage clientvoid shutdown()
StorageObjectSummaryCollection listObjects(String remoteStorageLocation, String prefix) throws StorageProviderException
remoteStorageLocation - location, i.e. bucket for S3prefix - the prefix to listStorageProviderException - cloud storage provider errorStorageObjectMetadata getObjectMetadata(String remoteStorageLocation, String prefix) throws StorageProviderException
remoteStorageLocation - location, i.e. bucket for S3prefix - the prefix/path of the object to retrieveStorageProviderException - cloud storage provider errorvoid download(SFSession connection, String command, String localLocation, String destFileName, int parallelism, String remoteStorageLocation, String stageFilePath, String stageRegion, String presignedUrl) throws SnowflakeSQLException
connection - connection objectcommand - command to download filelocalLocation - local file pathdestFileName - destination file nameparallelism - number of threads for parallel downloadingremoteStorageLocation - remote storage location, i.e. bucket for S3stageFilePath - stage file pathstageRegion - region name where the stage persistspresignedUrl - presigned URL for download. Used by GCP.SnowflakeSQLException - download failureInputStream downloadToStream(SFSession connection, String command, int parallelism, String remoteStorageLocation, String stageFilePath, String stageRegion, String presignedUrl) throws SnowflakeSQLException
connection - connection objectcommand - command to download fileparallelism - number of threads for parallel downloadingremoteStorageLocation - remote storage location, i.e. bucket for s3stageFilePath - stage file pathstageRegion - region name where the stage persistspresignedUrl - presigned URL for download. Used by GCP.SnowflakeSQLException - when download failurevoid upload(SFSession connection, String command, int parallelism, boolean uploadFromStream, String remoteStorageLocation, File srcFile, String destFileName, InputStream inputStream, FileBackedOutputStream fileBackedOutputStream, StorageObjectMetadata meta, String stageRegion, String presignedUrl) throws SnowflakeSQLException
connection - connection objectcommand - upload commandparallelism - number of threads do parallel uploadinguploadFromStream - true if upload source is streamremoteStorageLocation - s3 bucket namesrcFile - source file if not uploading from a streamdestFileName - file name on remote storage after uploadinputStream - stream used for uploading if fileBackedOutputStream is nullfileBackedOutputStream - stream used for uploading if not nullmeta - object meta datastageRegion - region name where the stage persistspresignedUrl - presigned URL for upload. Used by GCP.SnowflakeSQLException - if upload failed even after retrydefault void uploadWithPresignedUrlWithoutConnection(int networkTimeoutInMilli,
HttpClientSettingsKey ocspModeAndProxyKey,
int parallelism,
boolean uploadFromStream,
String remoteStorageLocation,
File srcFile,
String destFileName,
InputStream inputStream,
FileBackedOutputStream fileBackedOutputStream,
StorageObjectMetadata meta,
String stageRegion,
String presignedUrl)
throws SnowflakeSQLException
NOTE: This function is only supported when pre-signed URL is used.
networkTimeoutInMilli - Network timeout for the uploadocspModeAndProxyKey - OCSP mode and proxy settings for the upload.parallelism - number of threads do parallel uploadinguploadFromStream - true if upload source is streamremoteStorageLocation - s3 bucket namesrcFile - source file if not uploading from a streamdestFileName - file name on remote storage after uploadinputStream - stream used for uploading if fileBackedOutputStream is nullfileBackedOutputStream - stream used for uploading if not nullmeta - object meta datastageRegion - region name where the stage persistspresignedUrl - presigned URL for upload. Used by GCP.SnowflakeSQLException - if upload failed even after retryvoid handleStorageException(Exception ex, int retryCount, String operation, SFSession connection, String command) throws SnowflakeSQLException
ex - the exception to handleretryCount - current number of retries, incremented by the caller before each calloperation - string that indicates the function/operation that was taking place, when the
exception was raised, for example "upload"connection - the current SFSession object used by the clientcommand - the command attempted at the time of the exceptionSnowflakeSQLException - exceptions that were not handled, or retried past what the retry
policy allows, are propagatedString getMatdescKey()
void addEncryptionMetadata(StorageObjectMetadata meta, MatDesc matDesc, byte[] ivData, byte[] encKeK, long contentLength)
meta - the storage metadata object to add the encyption info tomatDesc - the material decriptorivData - the initialization vectorencKeK - the key encryption keycontentLength - the length of the encrypted contentvoid addDigestMetadata(StorageObjectMetadata meta, String digest)
meta - the storage metadata object to add the digest todigest - the digest metadata to addString getDigestMetadata(StorageObjectMetadata meta)
meta - the metadata object to extract the digest metadata fromvoid addStreamingIngestMetadata(StorageObjectMetadata meta, String clientName, String clientKey)
meta - the storage metadata object to add the digest toclientName - streaming ingest client nameclientKey - streaming ingest client key, provided by SnowflakeString getStreamingIngestClientName(StorageObjectMetadata meta)
String getStreamingIngestClientKey(StorageObjectMetadata meta)
Copyright © 2022. All rights reserved.