File Manager#

Overview#

File Manager Drivers can be used to load and save files with local or external file systems.

You can use File Manager Drivers with Loaders:

from griptape.drivers.file_manager.local import LocalFileManagerDriver
from griptape.loaders import TextLoader

local_file_manager_driver = LocalFileManagerDriver()

loader = TextLoader(file_manager_driver=local_file_manager_driver)
text_artifact = loader.load("tests/resources/test.txt")

print(text_artifact.value)

Or use them independently as shown below for each driver:

File Manager Drivers#

Gen AI Builder#

The GriptapeCloudFileManagerDriver allows you to load and save files sourced from Gen AI Builder Asset and Bucket resources.

import os

from griptape.drivers.file_manager.griptape_cloud import GriptapeCloudFileManagerDriver

gtc_file_manager_driver = GriptapeCloudFileManagerDriver(
    api_key=os.environ["GT_CLOUD_API_KEY"],
    bucket_id=os.environ["GT_CLOUD_BUCKET_ID"],
)

#  Download File

file_contents = gtc_file_manager_driver.load_file(os.environ["GT_CLOUD_ASSET_NAME"])

print(file_contents)

#  Upload File

response = gtc_file_manager_driver.save_file(os.environ["GT_CLOUD_ASSET_NAME"], file_contents.value)

print(response)

Local#

The LocalFileManagerDriver allows you to load and save files sourced from a local directory.

from griptape.drivers.file_manager.local import LocalFileManagerDriver

local_file_manager_driver = LocalFileManagerDriver()

#  Download File

file_contents = local_file_manager_driver.load_file("tests/resources/test.txt")

print(file_contents)

#  Upload File

response = local_file_manager_driver.save_file("tests/resources/test.txt", file_contents.value)

print(response)

Amazon S3#

The LocalFile ManagerDriver allows you to load and save files sourced from an Amazon S3 bucket.

import os

import boto3

from griptape.drivers.file_manager.amazon_s3 import AmazonS3FileManagerDriver

amazon_s3_file_manager_driver = AmazonS3FileManagerDriver(
    bucket=os.environ["AMAZON_S3_BUCKET"],
    session=boto3.Session(
        region_name=os.environ["AWS_DEFAULT_REGION"],
        aws_access_key_id=os.environ["AWS_ACCESS_KEY_ID"],
        aws_secret_access_key=os.environ["AWS_SECRET_ACCESS_KEY"],
    ),
)

#  Download File

file_contents = amazon_s3_file_manager_driver.load_file(os.environ["AMAZON_S3_KEY"])

print(file_contents)

#  Upload File

response = amazon_s3_file_manager_driver.save_file(os.environ["AMAZON_S3_KEY"], file_contents.value)

print(response)