Files
Mike Dalessio ffc0c86f36 Minio support in development
for when we need to debug direct upload problems
2025-10-14 19:11:50 -04:00

41 lines
1.1 KiB
Ruby
Executable File

#!/usr/bin/env ruby
#
# Make sure the bucket we rely upon in development exists.
# Configuration and credentials are in config/storage.yml
#
require_relative "../config/environment"
require "aws-sdk-s3"
# Load storage configuration
storage_config = YAML.load(ERB.new(File.read("config/storage.yml")).result)
minio_config = storage_config["devminio"]
bucket_name = minio_config["bucket"]
endpoint = minio_config["endpoint"]
access_key = minio_config["access_key_id"]
secret_key = minio_config["secret_access_key"]
region = minio_config["region"]
# Create S3 client
s3_client = Aws::S3::Client.new(
endpoint: endpoint,
access_key_id: access_key,
secret_access_key: secret_key,
region: region,
force_path_style: minio_config["force_path_style"]
)
# Check if bucket exists
begin
s3_client.head_bucket(bucket: bucket_name)
puts "Bucket '#{bucket_name}' already exists"
rescue Aws::S3::Errors::NotFound
# Create the bucket
puts "Creating bucket '#{bucket_name}'..."
s3_client.create_bucket(bucket: bucket_name)
puts "Successfully created bucket '#{bucket_name}'"
rescue => e
puts "Error checking/creating bucket: #{e.message}"
exit 1
end