Interface ThreddsS3Client

  • All Known Implementing Classes:
    CachingThreddsS3Client, ThreddsS3ClientImpl

    public interface ThreddsS3Client
    Provides an interface for accessing the Amazon S3 web service. It is a basic version of the AmazonS3 interface that is much simpler to use from within THREDDS.
    Since:
    2015/08/26
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      com.amazonaws.services.s3.model.ObjectMetadata getObjectMetadata​(S3URI s3uri)
      Gets the metadata for the specified Amazon S3 object without actually fetching the object itself.
      com.amazonaws.services.s3.model.ObjectListing listObjects​(S3URI s3uri)
      Returns a listing of the objects located in the "virtual filesystem" at the specified URI.
      File saveObjectToFile​(S3URI s3uri, File file)
      Gets the object metadata for the object stored in Amazon S3 under the specified bucket and key, and saves the object contents to the specified file.
    • Method Detail

      • getObjectMetadata

        com.amazonaws.services.s3.model.ObjectMetadata getObjectMetadata​(S3URI s3uri)
        Gets the metadata for the specified Amazon S3 object without actually fetching the object itself. The object metadata contains information such as content type, content disposition, etc., as well as custom user metadata that can be associated with an object in Amazon S3.
        Parameters:
        s3uri - the Amazon S3 URI of the object whose metadata is being retrieved.
        Returns:
        all Amazon S3 object metadata for the specified object. Will be null if there is no S3 bucket with the specified name that has the specified key.
      • listObjects

        com.amazonaws.services.s3.model.ObjectListing listObjects​(S3URI s3uri)
        Returns a listing of the objects located in the "virtual filesystem" at the specified URI. s3uri.getKey() is interpreted as a path, and only objects (accessible via ObjectListing.getObjectSummaries()) or "directories" (accessible via ObjectListing.getCommonPrefixes()) that have that prefix will be part of the returned listing.

        NOTE: To manage large result sets, Amazon S3 uses pagination to split them into multiple responses. As a consequence, this listing will only include the first 1000-or-so results.

        TODO: Extend this API so that it allows the retrieval of more than 1000 results.

        Parameters:
        s3uri - the Amazon S3 URI of the "virtual directory" whose objects are being retrieved.
        Returns:
        a listing of objects. Will be null if the specified URI does not denote an existing virtual directory. Otherwise, the result will be non-null and non-empty. That is, it will have at least one object summary or at least one common prefix.
        See Also:
        AmazonS3.listObjects(String)
      • saveObjectToFile

        File saveObjectToFile​(S3URI s3uri,
                              File file)
                       throws IOException
        Gets the object metadata for the object stored in Amazon S3 under the specified bucket and key, and saves the object contents to the specified file.
        Parameters:
        s3uri - the Amazon S3 URI of the object whose content is being saved.
        file - indicates the file (which might already exist) where to save the object content being downloading from Amazon S3.
        Returns:
        the file in which the Amazon S3 object's content was saved. Returns null if there is no S3 bucket with the specified name that has the specified key.
        Throws:
        IOException - if some I/O error occurred on the local filesystem while writing to file.