s3share 0.1 → 0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.markdown +5 -3
- data/Rakefile +12 -0
- data/lib/s3share/args.rb +0 -1
- data/lib/s3share/runner.rb +14 -1
- data/lib/s3share/version.rb +1 -1
- metadata +33 -6
data/README.markdown
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
S3Share
|
2
2
|
=======
|
3
3
|
|
4
|
-
S3Share is a simple script to upload your files to S3 and share them with your friends.
|
4
|
+
S3Share is a simple script to upload your files to S3 and share them with your friends and enemies.
|
5
5
|
|
6
6
|
Requirements
|
7
7
|
------------
|
@@ -18,7 +18,9 @@ You can install from Rubygems
|
|
18
18
|
Or you can download the source and build it manually:
|
19
19
|
|
20
20
|
$ git clone https://febuiles@github.com/febuiles/s3share.git
|
21
|
-
$
|
21
|
+
$ cd s3share
|
22
|
+
$ gem build
|
23
|
+
$ gem install s3share --local
|
22
24
|
|
23
25
|
|
24
26
|
Setting ENV variables
|
@@ -29,7 +31,7 @@ You'll need to set the three following ENV variables:
|
|
29
31
|
* `AMAZON_SECRET_ACCESS_KEY`: AWS secret access key.
|
30
32
|
* `AMAZON_S3_DEFAULT_BUCKET`: Name of the bucket where the uploads will be held.
|
31
33
|
|
32
|
-
The last variable is visible in the URL returned to the user: `http://s3.amazonaws.com/{AMAZON_S3_DEFAULT_BUCKET}/some_photo.png`, so make sure you choose something pretty. This value is global for all the S3 namespace, meaning you need to find something unique between all the S3 users ("some-user-name_uploads" should do the trick).
|
34
|
+
The last variable is visible in the URL returned to the user: `http://s3.amazonaws.com/{AMAZON_S3_DEFAULT_BUCKET}/some_photo.png`, so make sure you choose something pretty. This value is global for all the S3 namespace, meaning you need to find something unique between all the S3 users ("some-user-name_uploads" should do the trick). If the specified bucket doesn't exist, it will be automatically created.
|
33
35
|
|
34
36
|
You can set these variables in a `~/.amazon_keys` file:
|
35
37
|
|
data/Rakefile
CHANGED
@@ -1 +1,13 @@
|
|
1
1
|
# Empty Rakefile...
|
2
|
+
require 'rspec/core/rake_task'
|
3
|
+
|
4
|
+
file_list = FileList['spec/*_spec.rb']
|
5
|
+
|
6
|
+
RSpec::Core::RakeTask.new('spec') do |t|
|
7
|
+
t.pattern = file_list
|
8
|
+
t.rspec_opts = ["--colour", "--format progress"]
|
9
|
+
end
|
10
|
+
|
11
|
+
desc 'Default: run specs.'
|
12
|
+
task :default => 'spec'
|
13
|
+
|
data/lib/s3share/args.rb
CHANGED
data/lib/s3share/runner.rb
CHANGED
@@ -3,8 +3,10 @@ module S3Share
|
|
3
3
|
def initialize(*args)
|
4
4
|
@args = Args.new(args)
|
5
5
|
@filename = args.first
|
6
|
+
end
|
6
7
|
|
7
|
-
|
8
|
+
# Starts the execution.
|
9
|
+
def run
|
8
10
|
if @filename.nil?
|
9
11
|
puts "usage: s3.rb [filename]"
|
10
12
|
exit(-1)
|
@@ -58,6 +60,8 @@ module S3Share
|
|
58
60
|
:access_key_id => access_key,
|
59
61
|
:secret_access_key => secret_key
|
60
62
|
)
|
63
|
+
|
64
|
+
create_bucket_if_it_does_not_exist(bucket_name)
|
61
65
|
|
62
66
|
AWS::S3::S3Object.store(@filename, open("#{@path}/#{@filename}"),
|
63
67
|
bucket_name,
|
@@ -98,5 +102,14 @@ module S3Share
|
|
98
102
|
}
|
99
103
|
errors[err].each { |msg| puts msg }
|
100
104
|
end
|
105
|
+
|
106
|
+
private
|
107
|
+
# Check if the bucket exists and create it if it doesn't.
|
108
|
+
def create_bucket_if_it_does_not_exist(bucket_name)
|
109
|
+
AWS::S3::Bucket.find(bucket_name)
|
110
|
+
rescue AWS::S3::NoSuchBucket => e
|
111
|
+
puts "Bucket '#{bucket_name}' does not exist. Creating it..."
|
112
|
+
AWS::S3::Bucket.create(bucket_name)
|
113
|
+
end
|
101
114
|
end
|
102
115
|
end
|
data/lib/s3share/version.rb
CHANGED
metadata
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: s3share
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 15
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: "0.
|
8
|
+
- 2
|
9
|
+
version: "0.2"
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Federico Builes
|
@@ -14,10 +14,37 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-
|
17
|
+
date: 2010-12-06 00:00:00 -05:00
|
18
18
|
default_executable:
|
19
|
-
dependencies:
|
20
|
-
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: rspec
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
hash: 3
|
29
|
+
segments:
|
30
|
+
- 0
|
31
|
+
version: "0"
|
32
|
+
type: :development
|
33
|
+
version_requirements: *id001
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
name: aws-s3
|
36
|
+
prerelease: false
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
38
|
+
none: false
|
39
|
+
requirements:
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
hash: 3
|
43
|
+
segments:
|
44
|
+
- 0
|
45
|
+
version: "0"
|
46
|
+
type: :runtime
|
47
|
+
version_requirements: *id002
|
21
48
|
description: |+
|
22
49
|
S3Share allows simple uploads to Amazon S3 from your command line. Set
|
23
50
|
your access ENV variables (see website) and upload the file:
|