All Projects → standout → s3storage

standout / s3storage

Licence: MIT license
Simple rails plugin that makes it easy to store uploaded files on Amazon S3

Programming Languages

ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to s3storage

esop
Cloud-enabled backup and restore tool for Apache Cassandra
Stars: ✭ 40 (+166.67%)
Mutual labels:  s3
terraform-aws-s3-object
Terraform module which creates S3 object resources on AWS
Stars: ✭ 15 (+0%)
Mutual labels:  s3
terraform-aws-frontend
Collection of Terraform modules for frontend app deployment on AWS.
Stars: ✭ 31 (+106.67%)
Mutual labels:  s3
go-storage
A vendor-neutral storage library for Golang: Write once, run on every storage service.
Stars: ✭ 387 (+2480%)
Mutual labels:  s3
great-migration
Copy objects from Rackspace to S3
Stars: ✭ 15 (+0%)
Mutual labels:  s3
Bucket-Flaws
Bucket Flaws ( S3 Bucket Mass Scanner ): A Simple Lightweight Script to Check for Common S3 Bucket Misconfigurations
Stars: ✭ 43 (+186.67%)
Mutual labels:  s3
terraform-aws-efs-backup
Terraform module designed to easily backup EFS filesystems to S3 using DataPipeline
Stars: ✭ 40 (+166.67%)
Mutual labels:  s3
cantor
Data abstraction, storage, discovery, and serving system
Stars: ✭ 25 (+66.67%)
Mutual labels:  s3
minback-postgres
A container which provides the ability to backup a PostgreSQL database to Minio on demand
Stars: ✭ 18 (+20%)
Mutual labels:  s3
hyperblock
[DEPRECATED] A theoretically-infinitely-scalable Skyblock plugin.
Stars: ✭ 16 (+6.67%)
Mutual labels:  s3
flask-drive
A simple Flask app to upload and download files off Amazon's S3
Stars: ✭ 23 (+53.33%)
Mutual labels:  s3
cachegrand
cachegrand is an open-source fast, scalable and secure Key-Value store, also fully compatible with Redis protocol, designed from the ground up to take advantage of modern hardware vertical scalability, able to provide better performance and a larger cache at lower cost, without losing focus on distributed systems.
Stars: ✭ 87 (+480%)
Mutual labels:  s3
serverless-s3bucket-sync
Serverless Plugin to sync local folders with an S3 bucket
Stars: ✭ 24 (+60%)
Mutual labels:  s3
tech1-temple-aws
AWS Proofs of Concepts repository. No Longer Supported
Stars: ✭ 32 (+113.33%)
Mutual labels:  s3
crux.land
crux.land is a free registry service meant for hosting small (≤ 20kB) single deno scripts.
Stars: ✭ 50 (+233.33%)
Mutual labels:  s3
s3-monitoring
No description or website provided.
Stars: ✭ 14 (-6.67%)
Mutual labels:  s3
aws-s3-bucket-purger
A program that will purge any AWS S3 Bucket of objects and versions quickly
Stars: ✭ 18 (+20%)
Mutual labels:  s3
fss3
FSS3 is an S3 filesystem abstraction layer for Golang
Stars: ✭ 52 (+246.67%)
Mutual labels:  s3
s3rename
Tool to mass-rename S3 keys
Stars: ✭ 16 (+6.67%)
Mutual labels:  s3
terraform-remote-state
A Terraform module that configures an s3 bucket for use with Terraform's remote state feature
Stars: ✭ 21 (+40%)
Mutual labels:  s3
S3Storage
=========

This is an alpha-release. Use at your own risk.

This plugin is created for the Ruby on Rails framework and makes it really simple to 
use Amazon S3 for storing your uploaded files. 

You will need an account with Amazon Web Services http://aws.amazon.com/ 

Installation
============
Install the Amazon gem first

  sudo gem install aws-s3

Then you can install the plugin itself:

  ruby ./script/plugin install git://github.com/standout/s3storage.git

If you get a 'Not found' message, you probably don't have the latest version of 
rails. You could grab the plugin manually from http://github.com/standout/s3storage/tarball/master
and extract it into your vendor/plugins folder. 

Your model needs to have the following fields for this to work.

  - original_filename
  - content_type


Usage
=======

The plugin will create your bucket automatically if it does not already exist. 
Remember that bucket names must be unique across all of S3. I usually get around this
by setting the bucket name to a domain name.

I'll show some example code for a model called Document.

Scaffold (command line):
ruby ./script/generate scaffold Document title:string, original_filename:string, content_type:string
rake db:migrate

Model (app/models/document.rb):
class Document < ActiveRecord::Base
  s3_storage  :bucket => 'YOUR_BUCKET_NAME',
              :access_key => 'YOUR_ACCESS_KEY',
              :secret => 'YOUR_SECRET_KEY'
end

New document (app/views/document/new.html.erb):
In your view, you'll need to have a form for uploading.
<% form_for(@document, :html => {:multipart => true}) do |f| %>
  <p>
    <label for="document_title">Title</label><br />
    <%= f.text_field :title %>
  </p>
  <p>
    <label for="document_file">Select a file to upload</label><br />
    <%= f.file_field :file %>
  </p>
  <%= submit_tag "Upload file" %>
<% end %>

List of documents (app/views/document/index.html.erb):
<ul>
<% for document in @documents %
  <li>
    <%= link_to document.title, document.s3_path %>
  </li>
<% end %>
</ul>

That's it. Your uploaded files will now be stored in your Amazon S3 bucket.
Files will be deleted from Amazon S3 when you delete the object as usual in rails.

-------
Copyright (c) 2008 David Svensson http://www.standout.se/, released under the MIT license
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].