awscr-s3~sam-x

A Crystal shard for S3.
0.1.2 released

awscr-s3

CircleCI

S3 access via Crystal

Installation

Add this to your application's shard.yml:

dependencies:
  awscr-s3:
    github: taylorfinnell/awscr-s3

Usage

require "awscr-s3"

Creating a Presigned::Form.

form = Awscr::S3::Presigned::Form.build("us-east-1", "access key", "secret key") do |form|
  form.expiration(Time.epoch(Time.now.epoch + 1000))
  form.condition("bucket", "mybucket")
  form.condition("acl", "public-read")
  form.condition("key", SecureRandom.uuid)
  form.condition("Content-Type", "text/plain")
  form.condition("success_action_status", "201")
end

Converting the form to raw HTML (for browser uploads, etc).

puts form.to_html

Submitting the form.

data = IO::Memory.new("Hello, S3!")
form.submit(data)

Creating a Presigned::Url.

options = Awscr::S3::Presigned::Url::Options.new(
   aws_access_key: "key",
   aws_secret_key: "secret",
   region: "us-east-1",
   object: "test.txt",
   bucket: "mybucket",
   additional_options: {
  "Content-Type" => "image/png"
})

url = Awscr::S3::Presigned::Url.new(options)
p url.for(:put)

Examples

awscr-s3:
  github: sam0x17/awscr-s3
  version: ~> 0.1.2
License MIT
Crystal 0.23.1

Authors

Dependencies 1

  • awscr-signer ~> 0.3.6
    {'github' => 'taylorfinnell/awscr-signer', 'version' => '~> 0.3.6'}

Development Dependencies 2

  • timecop~waterlink master
    {'branch' => 'master', 'github' => 'waterlink/timecop.cr'}
  • webmock master
    {'branch' => 'master', 'github' => 'manastech/webmock.cr'}

Dependents 0

Last synced .
search fire star recently