rails_s3_uploader 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.env.sample +4 -0
- data/README.md +20 -0
- data/config/initializers/rails_s3_uploader.rb +7 -0
- data/config/storage.yml +6 -0
- data/lib/rails_s3_uploader/configuration.rb +13 -0
- data/lib/rails_s3_uploader/version.rb +1 -1
- data/lib/rails_s3_uploader.rb +20 -6
- data/rails_s3_uploader.gemspec +17 -22
- metadata +38 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d98b82fb4e84cc13bc28e6b39406244b3f1fc90e2907a83dd362d50690d4323f
|
4
|
+
data.tar.gz: 9cca5b7570b4a62a6cf287b90e744f196d285bb799c0178a295e383973a10a33
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a0a025d7dc499fec9bae84f6317e90de047b2d5be99cd73b74f1df7c506175fb5745b1d6cd44e02068cecf651480dbedf43f84e87f97e20bb4442092abe5247a
|
7
|
+
data.tar.gz: b2b76b8f7dde18c7fa6bdda4fa1201e0d01b0555462fc34e3922dc863877234ad775b50a9e768785ccf371bed27f1036e4965dbbddbe4c56ef3de7dc7c705d32
|
data/.env.sample
ADDED
data/README.md
CHANGED
@@ -20,6 +20,18 @@ And run: **bundle install**
|
|
20
20
|
|
21
21
|
**Note:** Full usage documentation will be provided in future versions.
|
22
22
|
|
23
|
+
Rails S3 Uploader was developed to facilitate the file upload process to AWS S3 in Ruby on Rails projects. It can be especially useful in projects that need to store and manage files efficiently in the AWS cloud.
|
24
|
+
|
25
|
+
### Recommended Project Types
|
26
|
+
|
27
|
+
- **Web Applications:** Easily integrate image, document, and other file uploads in web applications built with Ruby on Rails.
|
28
|
+
|
29
|
+
- **E-commerce Applications:** Manage product images, catalogs, and media files on e-commerce platforms.
|
30
|
+
|
31
|
+
- **Content Management Systems (CMS):** Allow users to upload and manage multimedia content in Rails-based CMS systems.
|
32
|
+
|
33
|
+
- **Collaboration Projects:** Facilitate document sharing among users on collaborative platforms.
|
34
|
+
|
23
35
|
## Initial Configuration
|
24
36
|
|
25
37
|
#### Environment Variables
|
@@ -68,6 +80,14 @@ bundle exec rake install
|
|
68
80
|
|
69
81
|
Contributions are welcome! Bug reports and pull requests are welcome on GitHub at *https://github.com/eltonsantos/rails_s3_uploader*.
|
70
82
|
|
83
|
+
## Requirements
|
84
|
+
|
85
|
+
- Ruby >= 2.6.0 (recommended 2.7+)
|
86
|
+
|
87
|
+
- Rails >= 6.0 (compatible up to Rails 7)
|
88
|
+
|
89
|
+
- AWS S3 Account: You need an S3 bucket and access credentials to use the rails_s3_uploader gem.
|
90
|
+
|
71
91
|
## Licence
|
72
92
|
|
73
93
|
This gem is available as open-source under the terms of the MIT license.
|
data/config/storage.yml
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
module RailsS3Uploader
|
2
|
+
class Configuration
|
3
|
+
attr_accessor :access_key_id, :secret_access_key, :region, :bucket
|
4
|
+
|
5
|
+
def initialize
|
6
|
+
@access_key_id = ENV['AWS_ACCESS_KEY_ID']
|
7
|
+
@secret_access_key = ENV['AWS_SECRET_ACCESS_KEY']
|
8
|
+
@region = ENV['AWS_REGION']
|
9
|
+
@bucket = ENV['AWS_BUCKET']
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
data/lib/rails_s3_uploader.rb
CHANGED
@@ -1,8 +1,22 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
require_relative "rails_s3_uploader/version"
|
4
|
-
|
1
|
+
require 'aws-sdk-s3'
|
5
2
|
module RailsS3Uploader
|
6
|
-
class
|
7
|
-
|
3
|
+
class S3Uploader
|
4
|
+
def initialize
|
5
|
+
@s3_client = Aws::S3::Client.new(
|
6
|
+
access_key_id: RailsS3Uploader.configuration.access_key_id,
|
7
|
+
secret_access_key: RailsS3Uploader.configuration.secret_access_key,
|
8
|
+
region: RailsS3Uploader.configuration.region
|
9
|
+
)
|
10
|
+
@bucket = RailsS3Uploader.configuration.bucket
|
11
|
+
end
|
12
|
+
|
13
|
+
def upload(file, key)
|
14
|
+
obj = Aws::S3::Object.new(bucket_name: @bucket, key: key, client: @s3_client)
|
15
|
+
obj.upload_file(file.path)
|
16
|
+
obj.public_url
|
17
|
+
rescue StandardError => e
|
18
|
+
puts "Error uploading file: #{e.message}"
|
19
|
+
nil
|
20
|
+
end
|
21
|
+
end
|
8
22
|
end
|
data/rails_s3_uploader.gemspec
CHANGED
@@ -1,39 +1,34 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
1
|
|
3
2
|
require_relative "lib/rails_s3_uploader/version"
|
4
3
|
|
5
4
|
Gem::Specification.new do |spec|
|
6
|
-
spec.name
|
7
|
-
spec.version
|
8
|
-
spec.authors
|
9
|
-
spec.email
|
10
|
-
spec.summary
|
11
|
-
spec.description
|
12
|
-
spec.homepage
|
5
|
+
spec.name = "rails_s3_uploader"
|
6
|
+
spec.version = RailsS3Uploader::VERSION
|
7
|
+
spec.authors = ["Elton Santos", "Raquel Fonseca"]
|
8
|
+
spec.email = ["eltonaxl@hotmail.com", "raque-leto@hotmail.com"]
|
9
|
+
spec.summary = "Gem that makes it easy to integrate and upload files with AWS S3 using Active Storage"
|
10
|
+
spec.description = "Gem that makes it easy to integrate and upload files to AWS S3 using Active Storage. Pay attention: this gem is still in development. Please CONTRIBUTE!"
|
11
|
+
spec.homepage = "https://github.com/eltonsantos/rails_s3_uploader"
|
13
12
|
spec.required_ruby_version = ">= 2.6.0"
|
14
|
-
spec.license
|
13
|
+
spec.license = "MIT"
|
15
14
|
|
16
15
|
spec.metadata = {
|
17
|
-
"homepage_uri"
|
18
|
-
"source_code_uri"
|
19
|
-
"changelog_uri"
|
16
|
+
"homepage_uri" => spec.homepage,
|
17
|
+
"source_code_uri"=> "https://github.com/eltonsantos/rails_s3_uploader",
|
18
|
+
"changelog_uri" => "https://github.com/eltonsantos/rails_s3_uploader/blob/master/CHANGELOG.md",
|
20
19
|
}
|
21
20
|
|
22
|
-
|
23
|
-
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
24
|
-
spec.files = Dir.chdir(__dir__) do
|
21
|
+
spec.files = Dir.chdir(__dir__) do
|
25
22
|
`git ls-files -z`.split("\x0").reject do |f|
|
26
23
|
(File.expand_path(f) == __FILE__) ||
|
27
24
|
f.start_with?(*%w[bin/ test/ spec/ features/ .git appveyor Gemfile])
|
28
25
|
end
|
29
26
|
end
|
30
|
-
spec.bindir = "exe"
|
31
|
-
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
32
|
-
spec.require_paths = ["lib"]
|
33
27
|
|
34
|
-
|
35
|
-
|
28
|
+
spec.bindir = "exe"
|
29
|
+
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
30
|
+
spec.require_paths = ["lib"]
|
36
31
|
|
37
|
-
|
38
|
-
|
32
|
+
spec.add_dependency "rails", ">= 6.0"
|
33
|
+
spec.add_dependency "aws-sdk-s3", "~> 1.0"
|
39
34
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rails_s3_uploader
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Elton Santos
|
@@ -10,9 +10,37 @@ autorequire:
|
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
12
|
date: 2024-06-23 00:00:00.000000000 Z
|
13
|
-
dependencies:
|
14
|
-
|
15
|
-
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rails
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - ">="
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '6.0'
|
21
|
+
type: :runtime
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '6.0'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: aws-sdk-s3
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - "~>"
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '1.0'
|
35
|
+
type: :runtime
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - "~>"
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '1.0'
|
42
|
+
description: 'Gem that makes it easy to integrate and upload files to AWS S3 using
|
43
|
+
Active Storage. Pay attention: this gem is still in development. Please CONTRIBUTE!'
|
16
44
|
email:
|
17
45
|
- eltonaxl@hotmail.com
|
18
46
|
- raque-leto@hotmail.com
|
@@ -20,10 +48,14 @@ executables: []
|
|
20
48
|
extensions: []
|
21
49
|
extra_rdoc_files: []
|
22
50
|
files:
|
51
|
+
- ".env.sample"
|
23
52
|
- CHANGELOG.md
|
24
53
|
- README.md
|
25
54
|
- Rakefile
|
55
|
+
- config/initializers/rails_s3_uploader.rb
|
56
|
+
- config/storage.yml
|
26
57
|
- lib/rails_s3_uploader.rb
|
58
|
+
- lib/rails_s3_uploader/configuration.rb
|
27
59
|
- lib/rails_s3_uploader/version.rb
|
28
60
|
- rails_s3_uploader.gemspec
|
29
61
|
- sig/rails_s3_uploader.rbs
|
@@ -52,6 +84,6 @@ requirements: []
|
|
52
84
|
rubygems_version: 3.5.3
|
53
85
|
signing_key:
|
54
86
|
specification_version: 4
|
55
|
-
summary: Gem that makes it easy to integrate and upload files with AWS S3 using
|
56
|
-
|
87
|
+
summary: Gem that makes it easy to integrate and upload files with AWS S3 using Active
|
88
|
+
Storage
|
57
89
|
test_files: []
|