plntr-fakes3 1.0.0.pre.8 → 1.0.0.pre.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/fakes3/file_store.rb +44 -38
- data/lib/fakes3/server.rb +6 -0
- data/lib/fakes3/version.rb +1 -1
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fcb8df09bf3dcf01c1fa618ac431ded197270a86c23909279630ed1708990310
|
4
|
+
data.tar.gz: 9a42f614efb72eb786121118db63db46e560a1224af84ad9a3c8017bc62dceec
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 266ab8177917fc9fa265ec2501761ea57d58f924016bfc3d71257a5630329eb333a13fda737b3833cab28cba16a683e14cfde0bc75d4332289213791076b7c10
|
7
|
+
data.tar.gz: 31cbdcdd05e151a7c02df7b83c7b49220d8bce7c5dbbd9ac900878aef1dfabeef417e5198729bee0074f3b345078e19e36d0add59a687c21d64e22c404b58642
|
data/lib/fakes3/file_store.rb
CHANGED
@@ -105,56 +105,62 @@ module FakeS3
|
|
105
105
|
end
|
106
106
|
|
107
107
|
def copy_object(src_bucket_name, src_name, dst_bucket_name, dst_name, request)
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
108
|
+
begin
|
109
|
+
src_root = File.join(@root,src_bucket_name,src_name,FAKE_S3_METADATA_DIR)
|
110
|
+
src_metadata_filename = File.join(src_root, "metadata")
|
111
|
+
src_metadata = File.open(src_metadata_filename) { |file| YAML::load(file) }
|
112
|
+
src_content_filename = File.join(src_root, "content")
|
112
113
|
|
113
|
-
|
114
|
-
|
114
|
+
dst_filename= File.join(@root,dst_bucket_name,dst_name)
|
115
|
+
FileUtils.mkdir_p(dst_filename)
|
115
116
|
|
116
|
-
|
117
|
-
|
117
|
+
metadata_dir = File.join(dst_filename,FAKE_S3_METADATA_DIR)
|
118
|
+
FileUtils.mkdir_p(metadata_dir)
|
118
119
|
|
119
|
-
|
120
|
-
|
120
|
+
content = File.join(metadata_dir, "content")
|
121
|
+
metadata = File.join(metadata_dir, "metadata")
|
121
122
|
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
123
|
+
if src_bucket_name != dst_bucket_name || src_name != dst_name
|
124
|
+
File.open(content, 'wb') do |f|
|
125
|
+
File.open(src_content_filename, 'rb') do |input|
|
126
|
+
f << input.read
|
127
|
+
end
|
126
128
|
end
|
127
|
-
end
|
128
129
|
|
129
|
-
|
130
|
-
|
131
|
-
|
130
|
+
File.open(metadata,'w') do |f|
|
131
|
+
File.open(src_metadata_filename,'r') do |input|
|
132
|
+
f << input.read
|
133
|
+
end
|
132
134
|
end
|
133
135
|
end
|
134
|
-
end
|
135
136
|
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
137
|
+
metadata_directive = request.header["x-amz-metadata-directive"].first
|
138
|
+
if metadata_directive == "REPLACE"
|
139
|
+
metadata_struct = create_metadata(content,request)
|
140
|
+
File.open(metadata,'w') do |f|
|
141
|
+
f << YAML::dump(metadata_struct)
|
142
|
+
end
|
141
143
|
end
|
142
|
-
end
|
143
144
|
|
144
|
-
|
145
|
-
|
145
|
+
src_bucket = get_bucket(src_bucket_name) || create_bucket(src_bucket_name)
|
146
|
+
dst_bucket = get_bucket(dst_bucket_name) || create_bucket(dst_bucket_name)
|
146
147
|
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
148
|
+
obj = S3Object.new
|
149
|
+
obj.name = dst_name
|
150
|
+
obj.md5 = src_metadata[:md5]
|
151
|
+
obj.content_type = src_metadata[:content_type]
|
152
|
+
obj.content_encoding = src_metadata[:content_encoding]
|
153
|
+
obj.size = src_metadata[:size]
|
154
|
+
obj.modified_date = src_metadata[:modified_date]
|
155
|
+
|
156
|
+
src_bucket.find(src_name)
|
157
|
+
dst_bucket.add(obj)
|
158
|
+
return obj
|
159
|
+
rescue
|
160
|
+
puts $!
|
161
|
+
$!.backtrace.each { |line| puts line }
|
162
|
+
return nil
|
163
|
+
end
|
158
164
|
end
|
159
165
|
|
160
166
|
def store_object(bucket, object_name, request)
|
data/lib/fakes3/server.rb
CHANGED
@@ -184,6 +184,12 @@ module FakeS3
|
|
184
184
|
case s_req.type
|
185
185
|
when Request::COPY
|
186
186
|
object = @store.copy_object(s_req.src_bucket, s_req.src_object, s_req.bucket, s_req.object, request)
|
187
|
+
if !object
|
188
|
+
response.status = 404
|
189
|
+
response.body = XmlAdapter.error_no_such_key(s_req.object)
|
190
|
+
response['Content-Type'] = "application/xml"
|
191
|
+
return
|
192
|
+
end
|
187
193
|
response.body = XmlAdapter.copy_object_result(object)
|
188
194
|
when Request::STORE
|
189
195
|
bucket_obj = @store.get_bucket(s_req.bucket)
|
data/lib/fakes3/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: plntr-fakes3
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0.pre.
|
4
|
+
version: 1.0.0.pre.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Curtis Spencer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-01-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -234,8 +234,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
234
234
|
- !ruby/object:Gem::Version
|
235
235
|
version: 1.3.1
|
236
236
|
requirements: []
|
237
|
-
|
238
|
-
rubygems_version: 2.7.4
|
237
|
+
rubygems_version: 3.0.3
|
239
238
|
signing_key:
|
240
239
|
specification_version: 4
|
241
240
|
summary: Fork of https://github.com/jubos/fake-s3. Fake S3 is a server that simulates
|