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 @RequestScoped beans.

  • Method Summary

    Modifier and Type
    Method
    Description
    org.apache.iceberg.io.FileIO
    loadFileIO(@NonNull org.apache.polaris.core.storage.StorageAccessConfig storageAccessConfig, @NonNull String ioImplClassName, @NonNull Map<String,String> properties)
    Loads a FileIO implementation for server-side use (metadata read/write, purge).
  • Method Details

    • loadFileIO

      org.apache.iceberg.io.FileIO loadFileIO(@NonNull org.apache.polaris.core.storage.StorageAccessConfig storageAccessConfig, @NonNull String ioImplClassName, @NonNull Map<String,String> properties)
      Loads a FileIO implementation for server-side use (metadata read/write, purge).

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

      storageAccessConfig is authoritative for credentials and storage-config extras. properties may carry catalog-trusted contextual settings (for example table-default.*). Callers must not pass table metadata.properties(), which can include caller-controlled FileIO client settings such as s3.endpoint.

      Parameters:
      storageAccessConfig - the storage access configuration containing credentials and other properties.
      ioImplClassName - the class name of the FileIO implementation to load.
      properties - catalog-trusted contextual properties for the FileIO.
      Returns:
      a configured FileIO instance.