Interface FileIOFactory

All Known Implementing Classes:
DefaultFileIOFactory, WasbTranslatingFileIOFactory

public interface FileIOFactory
Interface for providing a way to construct FileIO objects, such as for reading/writing S3.

Implementations are available via CDI as @ApplicationScoped beans.

  • Method Summary

    Modifier and Type
    Method
    Description
    org.apache.iceberg.io.FileIO
    loadFileIO(org.apache.polaris.core.context.CallContext callContext, String ioImplClassName, Map<String,String> properties, org.apache.iceberg.catalog.TableIdentifier identifier, Set<String> tableLocations, Set<org.apache.polaris.core.storage.PolarisStorageActions> storageActions, org.apache.polaris.core.persistence.PolarisResolvedPathWrapper resolvedEntityPath)
    Loads a FileIO implementation for a specific table in the given realm with detailed config.
  • Method Details

    • loadFileIO

      org.apache.iceberg.io.FileIO loadFileIO(@Nonnull org.apache.polaris.core.context.CallContext callContext, @Nonnull String ioImplClassName, @Nonnull Map<String,String> properties, @Nonnull org.apache.iceberg.catalog.TableIdentifier identifier, @Nonnull Set<String> tableLocations, @Nonnull Set<org.apache.polaris.core.storage.PolarisStorageActions> storageActions, @Nonnull org.apache.polaris.core.persistence.PolarisResolvedPathWrapper resolvedEntityPath)
      Loads a FileIO implementation for a specific table in the given realm with detailed config.

      This method may obtain subscoped credentials to restrict the FileIO's permissions, ensuring secure and limited access to the table's data and locations.

      Parameters:
      callContext - the call for which the FileIO is being loaded.
      ioImplClassName - the class name of the FileIO implementation to load.
      properties - configuration properties for the FileIO.
      identifier - the table identifier.
      tableLocations - locations associated with the table.
      storageActions - storage actions allowed for the table.
      resolvedEntityPath - resolved paths for the entities.
      Returns:
      a configured FileIO instance.