Class S3RandomAccessFile

  • All Implemented Interfaces:
    Closeable, DataInput, DataOutput, AutoCloseable, ucar.nc2.util.cache.FileCacheable, ucar.unidata.io.ReadableRemoteFile

    public final class S3RandomAccessFile
    extends ucar.unidata.io.RemoteRandomAccessFile
    implements ucar.unidata.io.ReadableRemoteFile, Closeable
    Manage random access file level access to objects stored on AWS S3 compatible Object Stores. Extensions to RandomAccessFile and RemoteRandomAccessFile for objects stored on AWS S3 compatible Object Stores.
    Since:
    5.3.2
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  S3RandomAccessFile.Provider
      Hook into service provider interface to RandomAccessFileProvider.
    • Field Summary

      • Fields inherited from class ucar.unidata.io.RemoteRandomAccessFile

        defaultMaxReadCacheSize, defaultRemoteFileBufferSize, defaultRemoteFileTimeout, url
      • Fields inherited from class ucar.unidata.io.RandomAccessFile

        allFiles, BIG_ENDIAN, bigEndian, buffer, bufferModified, bufferStart, dataEnd, dataSize, debugAccess, debugLeaks, defaultBufferSize, endOfFile, file, fileChannel, filePosition, LITTLE_ENDIAN, location, openFiles, readonly, showOpen, showRead
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void closeRemote()  
      long getLastModified()  
      String getLocation()  
      String getObjectName()  
      long length()  
      int readRemote​(long pos, byte[] buff, int offset, int len)
      Read directly from the remote service All reading goes through here or readToByteChannel; 1.
      • Methods inherited from class ucar.unidata.io.RemoteRandomAccessFile

        close, read_, readToByteChannel
      • Methods inherited from class ucar.unidata.io.RandomAccessFile

        acquire, acquire, eject, enableDefaultGlobalFileCache, flush, getAllFiles, getBufferSize, getDebugLeaks, getDebugNbytes, getDebugNseeks, getFilePointer, getGlobalFileCache, getMaxOpenFileCount, getOpenFileCount, getOpenFiles, getRandomAccessFile, isAtEndOfFile, isDirectory, order, order, reacquire, read, read, read, readBoolean, readBuffer, readByte, readBytes, readBytes, readChar, readDouble, readDouble, readFloat, readFloat, readFully, readFully, readInt, readInt, readIntUnbuffered, readLine, readLine, readLong, readLong, readShort, readShort, readString, readString, readStringMax, readStringMax, readUnsignedByte, readUnsignedShort, readUTF, release, searchForward, seek, setBufferSize, setDebugAccess, setDebugLeaks, setExtendMode, setFileCache, setGlobalFileCache, setMinLength, shutdown, skipBytes, skipBytes, toString, unread, write, write, write, writeBoolean, writeBoolean, writeByte, writeBytes, writeBytes, writeBytes, writeChar, writeChar, writeChar, writeChar, writeChar, writeChar, writeChars, writeChars, writeChars, writeDouble, writeDouble, writeDouble, writeDouble, writeDouble, writeDouble, writeFloat, writeFloat, writeFloat, writeFloat, writeFloat, writeFloat, writeInt, writeInt, writeInt, writeInt, writeInt, writeInt, writeLong, writeLong, writeLong, writeLong, writeLong, writeLong, writeShort, writeShort, writeShort, writeShort, writeShort, writeShort, writeUTF
    • Method Detail

      • closeRemote

        public void closeRemote()
        Specified by:
        closeRemote in interface ucar.unidata.io.ReadableRemoteFile
      • readRemote

        public int readRemote​(long pos,
                              byte[] buff,
                              int offset,
                              int len)
                       throws IOException
        Read directly from the remote service All reading goes through here or readToByteChannel; 1. https://docs.aws.amazon.com/AmazonS3/latest/dev/RetrievingObjectUsingJava.html
        Specified by:
        readRemote in interface ucar.unidata.io.ReadableRemoteFile
        Parameters:
        pos - start here in the file
        buff - put data into this buffer
        offset - buffer offset
        len - this number of bytes
        Returns:
        actual number of bytes read
        Throws:
        IOException - on io error
      • length

        public long length()
        Overrides:
        length in class ucar.unidata.io.RandomAccessFile
      • getLastModified

        public long getLastModified()
        Specified by:
        getLastModified in interface ucar.nc2.util.cache.FileCacheable
        Overrides:
        getLastModified in class ucar.unidata.io.RandomAccessFile
      • getLocation

        public String getLocation()
        Specified by:
        getLocation in interface ucar.nc2.util.cache.FileCacheable
        Overrides:
        getLocation in class ucar.unidata.io.RandomAccessFile
      • getObjectName

        public String getObjectName()