sploder 1.0.1 → 1.3.1
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/bin/sploder +32 -15
- data/lib/sploder.rb +1 -0
- data/lib/sploder/bucket.rb +14 -7
- data/lib/sploder/list.rb +7 -0
- data/lib/sploder/object.rb +34 -0
- data/lib/sploder/setup.rb +0 -1
- data/lib/sploder/upload.rb +9 -1
- data/lib/sploder/version.rb +1 -1
- metadata +7 -5
data/bin/sploder
CHANGED
@@ -12,7 +12,7 @@ rescue LoadError
|
|
12
12
|
end
|
13
13
|
|
14
14
|
# This line is what prints the running message
|
15
|
-
puts "
|
15
|
+
puts "Sploder is sploding..."
|
16
16
|
|
17
17
|
opts = Trollop::options do
|
18
18
|
opt :upload, "Upload a file to S3"
|
@@ -27,7 +27,7 @@ opts = Trollop::options do
|
|
27
27
|
opt :delete, "Delete an existing bucket. WARNING: This deletes the entire contents of your bucket"
|
28
28
|
opt :website, "Enables webhosting for the specified bucket"
|
29
29
|
opt :options, "Use optional settings. Not all operations support this flag"
|
30
|
-
|
30
|
+
opt :file, "Get information about a file and delete or download it"
|
31
31
|
end
|
32
32
|
|
33
33
|
# Initialize the settings class to later check for .sploder file
|
@@ -72,7 +72,8 @@ when opts[:explore]
|
|
72
72
|
when opts[:create]
|
73
73
|
settings.settings_exist # Check that Sploder has been set up
|
74
74
|
unless opts[:name]
|
75
|
-
puts "Please enter a name for your new bucket"
|
75
|
+
puts "Please enter a name for your new bucket using the -n flag"
|
76
|
+
puts "Example: sploder --create -n my_new_bucket"
|
76
77
|
exit 1
|
77
78
|
end
|
78
79
|
name = opts[:name]
|
@@ -98,17 +99,17 @@ when opts[:website]
|
|
98
99
|
key = settings.load_settings['key']
|
99
100
|
secret = settings.load_settings['secret']
|
100
101
|
bucket_name = opts[:name]
|
101
|
-
|
102
|
-
|
102
|
+
index_doc = ARGV[0]
|
103
|
+
error_doc = ARGV[1]
|
103
104
|
if opts[:options]
|
104
|
-
unless
|
105
|
+
unless index_doc && error_doc
|
105
106
|
puts "Please enter BOTH an index AND error page to enable hosting."
|
106
107
|
puts "Example: sploder --website -n mybucket index.html error.html"
|
107
108
|
exit 1
|
108
109
|
end
|
109
110
|
end
|
110
111
|
website = Sploder::Bucket.new
|
111
|
-
website.host_website(bucket_name,
|
112
|
+
website.host_website(bucket_name, index_doc, error_doc, key, secret)
|
112
113
|
when opts[:nohost]
|
113
114
|
settings.settings_exist # Make sure settings are set
|
114
115
|
key = settings.load_settings['key']
|
@@ -116,14 +117,30 @@ when opts[:nohost]
|
|
116
117
|
bucket_name = opts[:name]
|
117
118
|
disable = Sploder::Bucket.new
|
118
119
|
disable.end_hosting(bucket_name, index, error, key, secret)
|
120
|
+
when opts[:file]
|
121
|
+
settings.settings_exist # Make sure Sploder is set up
|
122
|
+
key = settings.load_settings['key']
|
123
|
+
secret = settings.load_settings['secret']
|
124
|
+
bucket_name = ARGV[0]
|
125
|
+
file = ARGV[1]
|
126
|
+
operation = ARGV[2]
|
127
|
+
unless operation.nil?
|
128
|
+
if operation == 'download'
|
129
|
+
download = Sploder::Object.new
|
130
|
+
download.download_file(bucket_name, file, key, secret)
|
131
|
+
elsif operation == 'delete'
|
132
|
+
delete = Sploder::Object.new
|
133
|
+
delete.delete_file(bucket_name, file, key, secret)
|
134
|
+
end
|
135
|
+
exit 0
|
136
|
+
end
|
137
|
+
url = Sploder::Object.new
|
138
|
+
url.get_url(bucket_name, file, key, secret)
|
119
139
|
else
|
120
140
|
puts "USAGE:"
|
121
|
-
puts "
|
122
|
-
puts "
|
123
|
-
puts " "
|
124
|
-
puts "
|
125
|
-
puts "
|
126
|
-
puts " "
|
127
|
-
puts "List available buckets:"
|
128
|
-
puts " sploder --list"
|
141
|
+
puts "Available flags: --list, --upload, --create, --delete , --setup, --explore"
|
142
|
+
puts ""
|
143
|
+
puts "Full documentation:"
|
144
|
+
puts "http://sploder.cleverlabs.info"
|
145
|
+
puts "or run `sploder -h`"
|
129
146
|
end
|
data/lib/sploder.rb
CHANGED
data/lib/sploder/bucket.rb
CHANGED
@@ -20,7 +20,7 @@ module Sploder
|
|
20
20
|
end
|
21
21
|
|
22
22
|
# The following methods do nothing. They will in the future.
|
23
|
-
def host_website (bucket_name,
|
23
|
+
def host_website (bucket_name, index_doc, error_doc, key, secret)
|
24
24
|
s3 = AWS::S3.new(
|
25
25
|
:access_key_id => key,
|
26
26
|
:secret_access_key => secret)
|
@@ -28,18 +28,25 @@ module Sploder
|
|
28
28
|
# Get the bucket
|
29
29
|
bucket = s3.buckets[bucket_name]
|
30
30
|
|
31
|
+
unless bucket.exists?
|
32
|
+
puts "Looks like that bucket does not exist in your account."
|
33
|
+
puts "Would you like to create it?"
|
34
|
+
puts "Just run 'sploder --create -n #{bucket_name}'"
|
35
|
+
exit 1
|
36
|
+
end
|
37
|
+
|
31
38
|
# Set default index and error documents
|
32
|
-
unless
|
33
|
-
|
39
|
+
unless index_doc
|
40
|
+
index_doc = 'index.html'
|
34
41
|
end
|
35
42
|
|
36
|
-
unless
|
37
|
-
|
43
|
+
unless error_doc
|
44
|
+
error_doc = 'error.html'
|
38
45
|
end
|
39
46
|
|
40
47
|
bucket.configure_website do |cfg|
|
41
|
-
cfg.index_document_suffix =
|
42
|
-
cfg.error_document_key =
|
48
|
+
cfg.index_document_suffix = index_doc
|
49
|
+
cfg.error_document_key = error_doc
|
43
50
|
end
|
44
51
|
|
45
52
|
puts "All set! #{bucket_name} is now configured as a web host"
|
data/lib/sploder/list.rb
CHANGED
@@ -19,6 +19,13 @@ module Sploder
|
|
19
19
|
# Access the specified bucket
|
20
20
|
bucket = s3.buckets[bucket_name]
|
21
21
|
|
22
|
+
unless bucket.exists?
|
23
|
+
puts "Looks like that bucket does not exist in your account."
|
24
|
+
puts "Would you like to create it?"
|
25
|
+
puts "Just run 'sploder --create -n #{bucket_name}'"
|
26
|
+
exit 1
|
27
|
+
end
|
28
|
+
|
22
29
|
if prefix.nil?
|
23
30
|
bucket.objects.each do |obj|
|
24
31
|
puts obj.key
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'aws-sdk'
|
2
|
+
|
3
|
+
module Sploder
|
4
|
+
class Object
|
5
|
+
def get_url (bucket_name, file, key, secret)
|
6
|
+
s3 = AWS::S3.new(
|
7
|
+
:access_key_id => key,
|
8
|
+
:secret_access_key => secret)
|
9
|
+
|
10
|
+
bucket = s3.buckets[bucket_name].objects[file]
|
11
|
+
puts "Your file's public url:"
|
12
|
+
puts bucket.public_url
|
13
|
+
end
|
14
|
+
|
15
|
+
def download_file (bucket_name, file, key, secret)
|
16
|
+
s3 = AWS::S3.new(
|
17
|
+
:access_key_id => key,
|
18
|
+
:secret_access_key => secret)
|
19
|
+
|
20
|
+
puts "Download function is not available in Sploder stable versions currently."
|
21
|
+
puts "You can download the latest edge version from http://sploder.cleverlabs.info"
|
22
|
+
end
|
23
|
+
|
24
|
+
def delete_file (bucket_name, file, key, secret)
|
25
|
+
s3 = AWS::S3.new(
|
26
|
+
:access_key_id => key,
|
27
|
+
:secret_access_key => secret)
|
28
|
+
|
29
|
+
bucket = s3.buckets[bucket_name].objects[file]
|
30
|
+
bucket.delete
|
31
|
+
puts "Deleted #{file} from #{bucket_name}"
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
data/lib/sploder/setup.rb
CHANGED
data/lib/sploder/upload.rb
CHANGED
@@ -5,7 +5,8 @@ module Sploder
|
|
5
5
|
class Upload
|
6
6
|
def run (bucket, file, path, acl, key, secret)
|
7
7
|
unless bucket && file
|
8
|
-
puts "
|
8
|
+
puts "You must at least enter a bucket name and relative or absolute path to the file to upload."
|
9
|
+
puts "USAGE: sploder --upload BUCKET_NAME FILE_NAME | Optional: -p S3_PATH -a ACL_POLICY"
|
9
10
|
exit 1
|
10
11
|
end
|
11
12
|
|
@@ -22,6 +23,13 @@ module Sploder
|
|
22
23
|
:secret_access_key => secret)
|
23
24
|
|
24
25
|
bucket = s3.buckets[bucket]
|
26
|
+
unless bucket.exists?
|
27
|
+
puts "Looks like that bucket does not exist in your account."
|
28
|
+
puts "Would you like to create it?"
|
29
|
+
puts "Just run 'sploder --create -n #{bucket}'"
|
30
|
+
exit 1
|
31
|
+
end
|
32
|
+
|
25
33
|
basename = File.basename(file)
|
26
34
|
upload = bucket.objects["#{path}#{basename}"]
|
27
35
|
upload.write(:file => file, :acl => acl)
|
data/lib/sploder/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sploder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-02-
|
12
|
+
date: 2013-02-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: trollop
|
@@ -59,7 +59,7 @@ dependencies:
|
|
59
59
|
- - ! '>='
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
|
-
description: Sploder
|
62
|
+
description: Sploder lets you work with S3 buckets from the command line
|
63
63
|
email:
|
64
64
|
- bill@billpatrianakos.me
|
65
65
|
executables:
|
@@ -70,6 +70,7 @@ files:
|
|
70
70
|
- bin/sploder
|
71
71
|
- lib/sploder/bucket.rb
|
72
72
|
- lib/sploder/list.rb
|
73
|
+
- lib/sploder/object.rb
|
73
74
|
- lib/sploder/setup.rb
|
74
75
|
- lib/sploder/upload.rb
|
75
76
|
- lib/sploder/version.rb
|
@@ -94,8 +95,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
94
95
|
version: '0'
|
95
96
|
requirements: []
|
96
97
|
rubyforge_project:
|
97
|
-
rubygems_version: 1.8.
|
98
|
+
rubygems_version: 1.8.25
|
98
99
|
signing_key:
|
99
100
|
specification_version: 3
|
100
|
-
summary: Easily upload files to S3, create buckets,
|
101
|
+
summary: Easily upload files to S3, create buckets, delete them, see bucket contents,
|
102
|
+
set ACL, and more
|
101
103
|
test_files: []
|