Skip to content

File Manager Drivers

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

Griptape Cloud

The GriptapeCloudFileManagerDriver allows you to load and save files sourced from Griptape Cloud 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

Info

This driver requires the drivers-file-manager-amazon-s3 extra.

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)