Class OSSUnderFileSystem

  • All Implemented Interfaces:
    alluxio.underfs.AsyncUfsClient, alluxio.underfs.UnderFileSystem, java.io.Closeable, java.lang.AutoCloseable

    @ThreadSafe
    public class OSSUnderFileSystem
    extends alluxio.underfs.ObjectUnderFileSystem
    Aliyun OSS UnderFileSystem implementation.
    • Nested Class Summary

      • Nested classes/interfaces inherited from class alluxio.underfs.ObjectUnderFileSystem

        alluxio.underfs.ObjectUnderFileSystem.DeleteBuffer, alluxio.underfs.ObjectUnderFileSystem.ObjectListingChunk, alluxio.underfs.ObjectUnderFileSystem.ObjectPermissions, alluxio.underfs.ObjectUnderFileSystem.ObjectStatus, alluxio.underfs.ObjectUnderFileSystem.ObjectStoreOperation<T extends java.lang.Object>, alluxio.underfs.ObjectUnderFileSystem.OperationBuffer<T extends java.lang.Object>, alluxio.underfs.ObjectUnderFileSystem.RenameBuffer, alluxio.underfs.ObjectUnderFileSystem.UfsStatusIterator
      • Nested classes/interfaces inherited from interface alluxio.underfs.UnderFileSystem

        alluxio.underfs.UnderFileSystem.Factory, alluxio.underfs.UnderFileSystem.SpaceType
    • Field Summary

      • Fields inherited from class alluxio.underfs.ObjectUnderFileSystem

        mExecutorService, mRootKeySupplier, PATH_SEPARATOR, PATH_SEPARATOR_CHAR
      • Fields inherited from class alluxio.underfs.BaseUnderFileSystem

        EMPTY_ACL, mUfsConf, mUri
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected OSSUnderFileSystem​(alluxio.AlluxioURI uri, com.aliyun.oss.OSS ossClient, java.lang.String bucketName, alluxio.underfs.UnderFileSystemConfiguration conf)
      Constructor for OSSUnderFileSystem.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void cleanup()  
      void close()  
      protected boolean copyObject​(java.lang.String src, java.lang.String dst)  
      boolean createEmptyObject​(java.lang.String key)  
      static OSSUnderFileSystem createInstance​(alluxio.AlluxioURI uri, alluxio.underfs.UnderFileSystemConfiguration conf)
      Constructs a new instance of OSSUnderFileSystem.
      protected java.io.OutputStream createObject​(java.lang.String key)  
      protected boolean deleteObject​(java.lang.String key)  
      protected java.util.List<java.lang.String> deleteObjects​(java.util.List<java.lang.String> keys)  
      protected java.lang.String getFolderSuffix()  
      protected alluxio.underfs.ObjectUnderFileSystem.ObjectListingChunk getObjectListingChunk​(java.lang.String key, boolean recursive)  
      protected alluxio.underfs.ObjectUnderFileSystem.ObjectStatus getObjectStatus​(java.lang.String key)  
      protected alluxio.underfs.ObjectUnderFileSystem.ObjectPermissions getPermissions()  
      protected java.lang.String getRootKey()  
      java.lang.String getUnderFSType()  
      static com.aliyun.oss.ClientBuilderConfiguration initializeOSSClientConfig​(alluxio.conf.AlluxioConfiguration alluxioConf)
      Creates an OSS ClientConfiguration using an Alluxio Configuration.
      protected java.io.InputStream openObject​(java.lang.String key, alluxio.underfs.options.OpenOptions options, alluxio.retry.RetryPolicy retryPolicy)  
      alluxio.PositionReader openPositionRead​(java.lang.String path, long fileLength)  
      void setMode​(java.lang.String path, short mode)  
      void setOwner​(java.lang.String path, java.lang.String user, java.lang.String group)  
      • Methods inherited from class alluxio.underfs.ObjectUnderFileSystem

        connectFromMaster, connectFromWorker, convertToFolderName, create, createNonexistingFile, createNonexistingFile, deleteDirectory, deleteExistingDirectory, deleteExistingDirectory, deleteExistingFile, deleteFile, getBlockSizeByte, getChildName, getDirectoryStatus, getExistingDirectoryStatus, getExistingFileStatus, getExistingStatus, getFileLocations, getFileLocations, getFileStatus, getListingChunkLength, getListingChunkLengthMax, getObjectListingChunk, getObjectListingChunkForPath, getObjectListingChunkForPath, getParentPath, getSpace, getStatus, isDirectory, isExistingDirectory, isFile, isObjectStorage, isRoot, listInternal, listStatus, listStatus, listStatusIterable, mkdirs, mkdirsInternal, open, openExistingFile, openExistingFile, parentExists, renameDirectory, renameFile, renameRenamableDirectory, renameRenamableFile, retryOnException, stripPrefixIfPresent, supportsFlush
      • Methods inherited from class alluxio.underfs.BaseUnderFileSystem

        create, deleteDirectory, exists, getAclPair, getActiveSyncInfo, getConfiguration, getFingerprint, getOperationMode, getParsedFingerprint, getParsedFingerprint, getPhysicalStores, isSeekable, mkdirs, open, performListingAsync, resolveUri, setAclEntries, startActiveSyncPolling, startSync, stopActiveSyncPolling, stopSync, supportsActiveSync, validatePath
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface alluxio.underfs.UnderFileSystem

        getFileStatus, getStatus, getTemporaryToken, isTemporaryConnectionToken, listStatuses, refreshTemporaryToken, setTemporaryTokenRefreshContext
    • Constructor Detail

      • OSSUnderFileSystem

        protected OSSUnderFileSystem​(alluxio.AlluxioURI uri,
                                     @Nullable
                                     com.aliyun.oss.OSS ossClient,
                                     java.lang.String bucketName,
                                     alluxio.underfs.UnderFileSystemConfiguration conf)
        Constructor for OSSUnderFileSystem.
        Parameters:
        uri - the AlluxioURI for this UFS
        ossClient - Aliyun OSS client
        bucketName - bucket name of user's configured Alluxio bucket
        conf - configuration for this UFS
    • Method Detail

      • createInstance

        public static OSSUnderFileSystem createInstance​(alluxio.AlluxioURI uri,
                                                        alluxio.underfs.UnderFileSystemConfiguration conf)
                                                 throws java.lang.Exception
        Constructs a new instance of OSSUnderFileSystem.
        Parameters:
        uri - the AlluxioURI for this UFS
        conf - the configuration for this UFS
        Returns:
        the created OSSUnderFileSystem instance
        Throws:
        java.lang.Exception
      • cleanup

        public void cleanup()
                     throws java.io.IOException
        Specified by:
        cleanup in interface alluxio.underfs.UnderFileSystem
        Overrides:
        cleanup in class alluxio.underfs.ObjectUnderFileSystem
        Throws:
        java.io.IOException
      • getUnderFSType

        public java.lang.String getUnderFSType()
      • openPositionRead

        public alluxio.PositionReader openPositionRead​(java.lang.String path,
                                                       long fileLength)
      • setOwner

        public void setOwner​(java.lang.String path,
                             java.lang.String user,
                             java.lang.String group)
      • setMode

        public void setMode​(java.lang.String path,
                            short mode)
                     throws java.io.IOException
        Throws:
        java.io.IOException
      • copyObject

        protected boolean copyObject​(java.lang.String src,
                                     java.lang.String dst)
        Specified by:
        copyObject in class alluxio.underfs.ObjectUnderFileSystem
      • createEmptyObject

        public boolean createEmptyObject​(java.lang.String key)
        Specified by:
        createEmptyObject in class alluxio.underfs.ObjectUnderFileSystem
      • createObject

        protected java.io.OutputStream createObject​(java.lang.String key)
                                             throws java.io.IOException
        Specified by:
        createObject in class alluxio.underfs.ObjectUnderFileSystem
        Throws:
        java.io.IOException
      • deleteObject

        protected boolean deleteObject​(java.lang.String key)
        Specified by:
        deleteObject in class alluxio.underfs.ObjectUnderFileSystem
      • deleteObjects

        protected java.util.List<java.lang.String> deleteObjects​(java.util.List<java.lang.String> keys)
                                                          throws java.io.IOException
        Overrides:
        deleteObjects in class alluxio.underfs.ObjectUnderFileSystem
        Throws:
        java.io.IOException
      • getFolderSuffix

        protected java.lang.String getFolderSuffix()
        Specified by:
        getFolderSuffix in class alluxio.underfs.ObjectUnderFileSystem
      • getObjectListingChunk

        protected alluxio.underfs.ObjectUnderFileSystem.ObjectListingChunk getObjectListingChunk​(java.lang.String key,
                                                                                                 boolean recursive)
                                                                                          throws java.io.IOException
        Specified by:
        getObjectListingChunk in class alluxio.underfs.ObjectUnderFileSystem
        Throws:
        java.io.IOException
      • getObjectStatus

        protected alluxio.underfs.ObjectUnderFileSystem.ObjectStatus getObjectStatus​(java.lang.String key)
        Specified by:
        getObjectStatus in class alluxio.underfs.ObjectUnderFileSystem
      • getPermissions

        protected alluxio.underfs.ObjectUnderFileSystem.ObjectPermissions getPermissions()
        Specified by:
        getPermissions in class alluxio.underfs.ObjectUnderFileSystem
      • getRootKey

        protected java.lang.String getRootKey()
        Specified by:
        getRootKey in class alluxio.underfs.ObjectUnderFileSystem
      • initializeOSSClientConfig

        public static com.aliyun.oss.ClientBuilderConfiguration initializeOSSClientConfig​(alluxio.conf.AlluxioConfiguration alluxioConf)
        Creates an OSS ClientConfiguration using an Alluxio Configuration.
        Parameters:
        alluxioConf - the OSS Configuration
        Returns:
        the OSS ClientBuilderConfiguration
      • openObject

        protected java.io.InputStream openObject​(java.lang.String key,
                                                 alluxio.underfs.options.OpenOptions options,
                                                 alluxio.retry.RetryPolicy retryPolicy)
                                          throws java.io.IOException
        Specified by:
        openObject in class alluxio.underfs.ObjectUnderFileSystem
        Throws:
        java.io.IOException
      • close

        public void close()
                   throws java.io.IOException
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Overrides:
        close in class alluxio.underfs.ObjectUnderFileSystem
        Throws:
        java.io.IOException