plntr-fakes3 1.0.0.pre.9test8 → 1.0.0.pre.9test9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5b739788195db42a3d1d4c5da7050550c5bfd4b3b6ef19c0a4fe5841e9c07be4
4
- data.tar.gz: 572690c009f95b300c7b82b70999ad7f0ba1ec7c9fae943eca7c4c1805fef8d1
3
+ metadata.gz: 0d7d7534e1cb3a29382c746a57c385dcf4c2562398fc9f48ed3080ad1edcf09b
4
+ data.tar.gz: a1a7eed1674f3b1bc8723ec12d03cc3571f92f0f878c8ab33255aa6bbedd6355
5
5
  SHA512:
6
- metadata.gz: 2887298e1f44d9fe4076394c75ffe4916f9810a0d29172d7740df69be691b8e187e258c4cbce3d3770601d640b75a4845879df29d5e8ceb1119a91878fc18a43
7
- data.tar.gz: 77537015a1531ca1c03d02142a4583da5f4c975aea49cfc630a423fa50ddf0e1272a8925fa58fd121d67d7343573919707bb55dab5a3eb700995b6462182714f
6
+ metadata.gz: f40ab027de1f168e10219a4abe8d0b7b2318236f4ea3374f96e85f69edc89ca9d002d6ff9c24caa156220ea8b509c91d59d729398ebeb2115908a9762e3c7b5e
7
+ data.tar.gz: eb3f2a7b1ec661e48d00002a9a39b724833a0b589af75474676d6b3267c511d11126dc7c2ac2e3ad4a470d9f9703980ac7245a99c33d99582ea0183424707c12
@@ -110,65 +110,71 @@ module FakeS3
110
110
  end
111
111
 
112
112
  def copy_object(src_bucket_name, src_name, dst_bucket_name, dst_name, request)
113
- warn "copy_object:"
114
- warn ". root: '#{@root}'"
115
- warn ". dst bucket: '#{dst_bucket_name}'"
116
- warn ". dst path: '#{dst_name}'"
117
- warn ". src bucket: '#{src_bucket_name}'"
118
- warn ". src path: '#{src_name}'"
119
- src_root = File.join(@root,src_bucket_name,src_name,FAKE_S3_METADATA_DIR)
120
- src_metadata_filename = File.join(src_root, "metadata")
121
- warn ". src metadata: '#{src_metadata_filename}'"
122
- warn ""
123
- # src_metadata = YAML.load(File.open(src_metadata_filename, 'rb').read)
124
- src_metadata = File.open(src_metadata_filename) { |file| YAML::load(file) }
125
- src_content_filename = File.join(src_root, "content")
126
-
127
- dst_filename= File.join(@root,dst_bucket_name,dst_name)
128
- FileUtils.mkdir_p(dst_filename)
129
-
130
- metadata_dir = File.join(dst_filename,FAKE_S3_METADATA_DIR)
131
- FileUtils.mkdir_p(metadata_dir)
132
-
133
- content = File.join(metadata_dir, "content")
134
- metadata = File.join(metadata_dir, "metadata")
135
-
136
- if src_bucket_name != dst_bucket_name || src_name != dst_name
137
- File.open(content, 'wb') do |f|
138
- File.open(src_content_filename, 'rb') do |input|
139
- f << input.read
113
+ begin
114
+ warn "copy_object:"
115
+ warn ". root: '#{@root}'"
116
+ warn ". dst bucket: '#{dst_bucket_name}'"
117
+ warn ". dst path: '#{dst_name}'"
118
+ warn ". src bucket: '#{src_bucket_name}'"
119
+ warn ". src path: '#{src_name}'"
120
+ src_root = File.join(@root,src_bucket_name,src_name,FAKE_S3_METADATA_DIR)
121
+ src_metadata_filename = File.join(src_root, "metadata")
122
+ warn ". src metadata: '#{src_metadata_filename}'"
123
+ warn ""
124
+ # src_metadata = YAML.load(File.open(src_metadata_filename, 'rb').read)
125
+ src_metadata = File.open(src_metadata_filename) { |file| YAML::load(file) }
126
+ src_content_filename = File.join(src_root, "content")
127
+
128
+ dst_filename= File.join(@root,dst_bucket_name,dst_name)
129
+ FileUtils.mkdir_p(dst_filename)
130
+
131
+ metadata_dir = File.join(dst_filename,FAKE_S3_METADATA_DIR)
132
+ FileUtils.mkdir_p(metadata_dir)
133
+
134
+ content = File.join(metadata_dir, "content")
135
+ metadata = File.join(metadata_dir, "metadata")
136
+
137
+ if src_bucket_name != dst_bucket_name || src_name != dst_name
138
+ File.open(content, 'wb') do |f|
139
+ File.open(src_content_filename, 'rb') do |input|
140
+ f << input.read
141
+ end
140
142
  end
141
- end
142
143
 
143
- File.open(metadata,'w') do |f|
144
- File.open(src_metadata_filename,'r') do |input|
145
- f << input.read
144
+ File.open(metadata,'w') do |f|
145
+ File.open(src_metadata_filename,'r') do |input|
146
+ f << input.read
147
+ end
146
148
  end
147
149
  end
148
- end
149
150
 
150
- metadata_directive = request.header["x-amz-metadata-directive"].first
151
- if metadata_directive == "REPLACE"
152
- metadata_struct = create_metadata(content,request)
153
- File.open(metadata,'w') do |f|
154
- f << YAML::dump(metadata_struct)
151
+ metadata_directive = request.header["x-amz-metadata-directive"].first
152
+ if metadata_directive == "REPLACE"
153
+ metadata_struct = create_metadata(content,request)
154
+ File.open(metadata,'w') do |f|
155
+ f << YAML::dump(metadata_struct)
156
+ end
155
157
  end
156
- end
157
-
158
- src_bucket = get_bucket(src_bucket_name) || create_bucket(src_bucket_name)
159
- dst_bucket = get_bucket(dst_bucket_name) || create_bucket(dst_bucket_name)
160
158
 
161
- obj = S3Object.new
162
- obj.name = dst_name
163
- obj.md5 = src_metadata[:md5]
164
- obj.content_type = src_metadata[:content_type]
165
- obj.content_encoding = src_metadata[:content_encoding]
166
- obj.size = src_metadata[:size]
167
- obj.modified_date = src_metadata[:modified_date]
159
+ src_bucket = get_bucket(src_bucket_name) || create_bucket(src_bucket_name)
160
+ dst_bucket = get_bucket(dst_bucket_name) || create_bucket(dst_bucket_name)
168
161
 
169
- src_bucket.find(src_name)
170
- dst_bucket.add(obj)
171
- return obj
162
+ obj = S3Object.new
163
+ obj.name = dst_name
164
+ obj.md5 = src_metadata[:md5]
165
+ obj.content_type = src_metadata[:content_type]
166
+ obj.content_encoding = src_metadata[:content_encoding]
167
+ obj.size = src_metadata[:size]
168
+ obj.modified_date = src_metadata[:modified_date]
169
+
170
+ src_bucket.find(src_name)
171
+ dst_bucket.add(obj)
172
+ return obj
173
+ rescue
174
+ puts $!
175
+ $!.backtrace.each { |line| puts line }
176
+ return nil
177
+ end
172
178
  end
173
179
 
174
180
  def store_object(bucket, object_name, request)
data/lib/fakes3/server.rb CHANGED
@@ -188,6 +188,12 @@ module FakeS3
188
188
  case s_req.type
189
189
  when Request::COPY
190
190
  object = @store.copy_object(s_req.src_bucket, s_req.src_object, s_req.bucket, s_req.object, request)
191
+ if !object
192
+ response.status = 404
193
+ response.body = XmlAdapter.error_no_such_key(s_req.object)
194
+ response['Content-Type'] = "application/xml"
195
+ return
196
+ end
191
197
  response.body = XmlAdapter.copy_object_result(object)
192
198
  when Request::STORE
193
199
  bucket_obj = @store.get_bucket(s_req.bucket)
@@ -1,3 +1,3 @@
1
1
  module FakeS3
2
- VERSION = "1.0.0-9test8"
2
+ VERSION = "1.0.0-9test9"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: plntr-fakes3
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.pre.9test8
4
+ version: 1.0.0.pre.9test9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Curtis Spencer