aliyun-sdk 0.5.0 → 0.6.0

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.
@@ -105,35 +105,11 @@ module Aliyun
105
105
  false
106
106
  end
107
107
 
108
- def inspect
109
- "@buffer: " + @buffer[0, 32].inspect + "...#{@buffer.size} bytes"
110
- end
111
- end
112
-
113
- # RestClient requires the payload to respones to :read(bytes)
114
- # and return a stream.
115
- # We are not doing the real read here, just return a
116
- # readable stream for RestClient playload.rb treats it as:
117
- # def read(bytes=nil)
118
- # @stream.read(bytes)
119
- # end
120
- # alias :to_s :read
121
- # net_http_do_request(http, req, payload ? payload.to_s : nil,
122
- # &@block_response)
123
- class StreamPayload
124
- def initialize(crc_enable = false, init_crc = 0, &block)
125
- @stream = StreamWriter.new(crc_enable, init_crc, &block)
126
- end
127
-
128
- def read(bytes = nil)
129
- @stream
130
- end
131
-
132
108
  def close
133
109
  end
134
110
 
135
- def closed?
136
- false
111
+ def inspect
112
+ "@buffer: " + @buffer[0, 32].inspect + "...#{@buffer.size} bytes"
137
113
  end
138
114
  end
139
115
 
@@ -281,44 +257,44 @@ module Aliyun
281
257
  headers[:params] = (sub_res || {}).merge(http_options[:query] || {})
282
258
 
283
259
  block_response = ->(r) { handle_response(r, &block) } if block
284
- r = RestClient::Request.execute(
260
+ request = RestClient::Request.new(
285
261
  :method => verb,
286
262
  :url => get_request_url(bucket, object),
287
263
  :headers => headers,
288
264
  :payload => http_options[:body],
289
265
  :block_response => block_response,
290
266
  :open_timeout => @config.open_timeout || OPEN_TIMEOUT,
291
- :timeout => @config.read_timeout || READ_TIMEOUT
292
- ) do |response, request, result, &blk|
293
-
294
- if response.code >= 300
295
- e = ServerError.new(response)
267
+ :read_timeout => @config.read_timeout || READ_TIMEOUT
268
+ )
269
+ response = request.execute do |resp, &blk|
270
+ if resp.code >= 300
271
+ e = ServerError.new(resp)
296
272
  logger.error(e.to_s)
297
273
  raise e
298
274
  else
299
- response.return!(request, result, &blk)
275
+ resp.return!(&blk)
300
276
  end
301
277
  end
302
278
 
303
279
  # If streaming read_body is used, we need to create the
304
280
  # RestClient::Response ourselves
305
- unless r.is_a?(RestClient::Response)
306
- if r.code.to_i >= 300
307
- r = RestClient::Response.create(
308
- RestClient::Request.decode(r['content-encoding'], r.body),
309
- r, nil, nil)
310
- e = ServerError.new(r)
281
+ unless response.is_a?(RestClient::Response)
282
+ if response.code.to_i >= 300
283
+ response = RestClient::Response.create(
284
+ RestClient::Request.decode(response['content-encoding'], response.body),
285
+ response, request)
286
+ e = ServerError.new(response)
311
287
  logger.error(e.to_s)
312
288
  raise e
313
289
  end
314
- r = RestClient::Response.create(nil, r, nil, nil)
315
- r.return!
290
+ response = RestClient::Response.create(nil, response, request)
291
+ response.return!
316
292
  end
317
293
 
318
- logger.debug("Received HTTP response, code: #{r.code}, headers: " \
319
- "#{r.headers}, body: #{r.body}")
294
+ logger.debug("Received HTTP response, code: #{response.code}, headers: " \
295
+ "#{response.headers}, body: #{response.body}")
320
296
 
321
- r
297
+ response
322
298
  end
323
299
 
324
300
  def get_user_agent
@@ -535,7 +535,7 @@ module Aliyun
535
535
  headers[CALLBACK_HEADER] = opts[:callback].serialize
536
536
  end
537
537
 
538
- payload = HTTP::StreamPayload.new(@config.upload_crc_enable, opts[:init_crc], &block)
538
+ payload = HTTP::StreamWriter.new(@config.upload_crc_enable, opts[:init_crc], &block)
539
539
  r = @http.put(
540
540
  {:bucket => bucket_name, :object => object_name},
541
541
  {:headers => headers, :body => payload})
@@ -547,7 +547,7 @@ module Aliyun
547
547
  end
548
548
 
549
549
  if @config.upload_crc_enable && !r.headers[:x_oss_hash_crc64ecma].nil?
550
- data_crc = payload.read.data_crc
550
+ data_crc = payload.data_crc
551
551
  Aliyun::OSS::Util.crc_check(data_crc, r.headers[:x_oss_hash_crc64ecma], 'put')
552
552
  end
553
553
 
@@ -593,16 +593,17 @@ module Aliyun
593
593
 
594
594
  headers.merge!(to_lower_case(opts[:headers])) if opts.key?(:headers)
595
595
 
596
- payload = HTTP::StreamPayload.new(@config.upload_crc_enable && !opts[:init_crc].nil?, opts[:init_crc], &block)
596
+ payload = HTTP::StreamWriter.new(
597
+ @config.upload_crc_enable && !opts[:init_crc].nil?, opts[:init_crc], &block)
597
598
 
598
599
  r = @http.post(
599
600
  {:bucket => bucket_name, :object => object_name, :sub_res => sub_res},
600
601
  {:headers => headers, :body => payload})
601
602
 
602
- if @config.upload_crc_enable &&
603
- !r.headers[:x_oss_hash_crc64ecma].nil? &&
603
+ if @config.upload_crc_enable &&
604
+ !r.headers[:x_oss_hash_crc64ecma].nil? &&
604
605
  !opts[:init_crc].nil?
605
- data_crc = payload.read.data_crc
606
+ data_crc = payload.data_crc
606
607
  Aliyun::OSS::Util.crc_check(data_crc, r.headers[:x_oss_hash_crc64ecma], 'append')
607
608
  end
608
609
 
@@ -780,7 +781,7 @@ module Aliyun
780
781
  {:bucket => bucket_name, :object => object_name,
781
782
  :sub_res => sub_res},
782
783
  {:headers => headers}
783
- ) do |chunk|
784
+ ) do |chunk|
784
785
  if block_given?
785
786
  # crc enable and no range and oss server support crc
786
787
  data_crc = Aliyun::OSS::Util.crc(chunk, data_crc) if @config.download_crc_enable && range.nil?
@@ -1110,13 +1111,13 @@ module Aliyun
1110
1111
 
1111
1112
  sub_res = {'partNumber' => part_no, 'uploadId' => txn_id}
1112
1113
 
1113
- payload = HTTP::StreamPayload.new(@config.upload_crc_enable, &block)
1114
+ payload = HTTP::StreamWriter.new(@config.upload_crc_enable, &block)
1114
1115
  r = @http.put(
1115
1116
  {:bucket => bucket_name, :object => object_name, :sub_res => sub_res},
1116
1117
  {:body => payload})
1117
1118
 
1118
1119
  if @config.upload_crc_enable && !r.headers[:x_oss_hash_crc64ecma].nil?
1119
- data_crc = payload.read.data_crc
1120
+ data_crc = payload.data_crc
1120
1121
  Aliyun::OSS::Util.crc_check(data_crc, r.headers[:x_oss_hash_crc64ecma], 'put')
1121
1122
  end
1122
1123
 
@@ -88,14 +88,14 @@ module Aliyun
88
88
  :method => 'POST',
89
89
  :url => @config.endpoint || ENDPOINT,
90
90
  :payload => query
91
- ) do |response, request, result, &blk|
91
+ ) do |response, &blk|
92
92
 
93
93
  if response.code >= 300
94
94
  e = ServerError.new(response)
95
95
  logger.error(e.to_s)
96
96
  raise e
97
97
  else
98
- response.return!(request, result, &blk)
98
+ response.return!(&blk)
99
99
  end
100
100
  end
101
101
 
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Aliyun
4
4
 
5
- VERSION = "0.5.0"
5
+ VERSION = "0.6.0"
6
6
 
7
7
  end # Aliyun
@@ -356,7 +356,7 @@ module Aliyun
356
356
 
357
357
  context "acl, logging, website, referer, lifecycle" do
358
358
  it "should update acl" do
359
- query = {'acl' => ''}
359
+ query = {'acl' => nil}
360
360
  stub_request(:put, request_path).with(:query => query)
361
361
 
362
362
  @protocol.put_bucket_acl(@bucket, ACL::PUBLIC_READ)
@@ -366,7 +366,7 @@ module Aliyun
366
366
  end
367
367
 
368
368
  it "should get acl" do
369
- query = {'acl' => ''}
369
+ query = {'acl' => nil}
370
370
  return_acl = ACL::PUBLIC_READ
371
371
  stub_request(:get, request_path)
372
372
  .with(:query => query)
@@ -380,7 +380,7 @@ module Aliyun
380
380
  end
381
381
 
382
382
  it "should enable logging" do
383
- query = {'logging' => ''}
383
+ query = {'logging' => nil}
384
384
  stub_request(:put, request_path).with(:query => query)
385
385
 
386
386
  logging_opts = BucketLogging.new(
@@ -393,7 +393,7 @@ module Aliyun
393
393
  end
394
394
 
395
395
  it "should disable logging" do
396
- query = {'logging' => ''}
396
+ query = {'logging' => nil}
397
397
  stub_request(:put, request_path).with(:query => query)
398
398
 
399
399
  logging_opts = BucketLogging.new(:enable => false)
@@ -404,7 +404,7 @@ module Aliyun
404
404
  end
405
405
 
406
406
  it "should get logging" do
407
- query = {'logging' => ''}
407
+ query = {'logging' => nil}
408
408
  logging_opts = BucketLogging.new(
409
409
  :enable => true,
410
410
  :target_bucket => 'target-bucket', :target_prefix => 'foo')
@@ -421,7 +421,7 @@ module Aliyun
421
421
  end
422
422
 
423
423
  it "should delete logging" do
424
- query = {'logging' => ''}
424
+ query = {'logging' => nil}
425
425
  stub_request(:delete, request_path).with(:query => query)
426
426
 
427
427
  @protocol.delete_bucket_logging(@bucket)
@@ -431,7 +431,7 @@ module Aliyun
431
431
  end
432
432
 
433
433
  it "should update website" do
434
- query = {'website' => ''}
434
+ query = {'website' => nil}
435
435
  stub_request(:put, request_path).with(:query => query)
436
436
 
437
437
  website_opts = BucketWebsite.new(
@@ -443,7 +443,7 @@ module Aliyun
443
443
  end
444
444
 
445
445
  it "should get website" do
446
- query = {'website' => ''}
446
+ query = {'website' => nil}
447
447
  website_opts = BucketWebsite.new(
448
448
  :enable => true, :index => 'index.html', :error => 'error.html')
449
449
 
@@ -459,7 +459,7 @@ module Aliyun
459
459
  end
460
460
 
461
461
  it "should delete website" do
462
- query = {'website' => ''}
462
+ query = {'website' => nil}
463
463
  stub_request(:delete, request_path).with(:query => query)
464
464
 
465
465
  @protocol.delete_bucket_website(@bucket)
@@ -469,7 +469,7 @@ module Aliyun
469
469
  end
470
470
 
471
471
  it "should update referer" do
472
- query = {'referer' => ''}
472
+ query = {'referer' => nil}
473
473
  stub_request(:put, request_path).with(:query => query)
474
474
 
475
475
  referer_opts = BucketReferer.new(
@@ -481,7 +481,7 @@ module Aliyun
481
481
  end
482
482
 
483
483
  it "should get referer" do
484
- query = {'referer' => ''}
484
+ query = {'referer' => nil}
485
485
  referer_opts = BucketReferer.new(
486
486
  :allow_empty => true, :whitelist => ['xxx', 'yyy'])
487
487
 
@@ -497,7 +497,7 @@ module Aliyun
497
497
  end
498
498
 
499
499
  it "should update lifecycle" do
500
- query = {'lifecycle' => ''}
500
+ query = {'lifecycle' => nil}
501
501
  stub_request(:put, request_path).with(:query => query)
502
502
 
503
503
  rules = (1..5).map do |i|
@@ -513,7 +513,7 @@ module Aliyun
513
513
  end
514
514
 
515
515
  it "should get lifecycle" do
516
- query = {'lifecycle' => ''}
516
+ query = {'lifecycle' => nil}
517
517
  return_rules = (1..5).map do |i|
518
518
  LifeCycleRule.new(
519
519
  :id => i, :enable => i % 2 == 0, :prefix => "foo#{i}",
@@ -532,7 +532,7 @@ module Aliyun
532
532
  end
533
533
 
534
534
  it "should delete lifecycle" do
535
- query = {'lifecycle' => ''}
535
+ query = {'lifecycle' => nil}
536
536
  stub_request(:delete, request_path).with(:query => query)
537
537
 
538
538
  @protocol.delete_bucket_lifecycle(@bucket)
@@ -542,7 +542,7 @@ module Aliyun
542
542
  end
543
543
 
544
544
  it "should set cors" do
545
- query = {'cors' => ''}
545
+ query = {'cors' => nil}
546
546
  stub_request(:put, request_path).with(:query => query)
547
547
 
548
548
  rules = (1..5).map do |i|
@@ -559,7 +559,7 @@ module Aliyun
559
559
  end
560
560
 
561
561
  it "should get cors" do
562
- query = {'cors' => ''}
562
+ query = {'cors' => nil}
563
563
  return_rules = (1..5).map do |i|
564
564
  CORSRule.new(
565
565
  :allowed_origins => (1..3).map {|x| "origin-#{x}"},
@@ -580,7 +580,7 @@ module Aliyun
580
580
  end
581
581
 
582
582
  it "should delete cors" do
583
- query = {'cors' => ''}
583
+ query = {'cors' => nil}
584
584
 
585
585
  stub_request(:delete, request_path).with(:query => query)
586
586
 
@@ -120,7 +120,7 @@ module Aliyun
120
120
 
121
121
  context "bucket operations" do
122
122
  it "should get acl" do
123
- query = {'acl' => ''}
123
+ query = {'acl' => nil}
124
124
  return_acl = ACL::PUBLIC_READ
125
125
 
126
126
  stub_request(:get, bucket_url)
@@ -135,7 +135,7 @@ module Aliyun
135
135
  end
136
136
 
137
137
  it "should set acl" do
138
- query = {'acl' => ''}
138
+ query = {'acl' => nil}
139
139
 
140
140
  stub_request(:put, bucket_url).with(:query => query)
141
141
 
@@ -146,7 +146,7 @@ module Aliyun
146
146
  end
147
147
 
148
148
  it "should delete logging setting" do
149
- query = {'logging' => ''}
149
+ query = {'logging' => nil}
150
150
 
151
151
  stub_request(:delete, bucket_url).with(:query => query)
152
152
 
@@ -303,7 +303,7 @@ module Aliyun
303
303
 
304
304
  it "should set custom headers when append object" do
305
305
  key = 'ruby'
306
- query = {'append' => '', 'position' => 11}
306
+ query = {'append' => nil, 'position' => 11}
307
307
  stub_request(:post, object_url(key)).with(:query => query)
308
308
 
309
309
  @bucket.append_object(
@@ -362,7 +362,7 @@ module Aliyun
362
362
 
363
363
  it "should append object from file" do
364
364
  key = 'ruby'
365
- query = {'append' => '', 'position' => 11}
365
+ query = {'append' => nil, 'position' => 11}
366
366
  stub_request(:post, object_url(key)).with(:query => query)
367
367
 
368
368
  content = (1..10).map{ |i| i.to_s.rjust(9, '0') }.join("\n")
@@ -378,7 +378,7 @@ module Aliyun
378
378
 
379
379
  it "should append object with acl" do
380
380
  key = 'ruby'
381
- query = {'append' => '', 'position' => 11}
381
+ query = {'append' => nil, 'position' => 11}
382
382
  stub_request(:post, object_url(key)).with(:query => query)
383
383
 
384
384
  @bucket.append_object(key, 11, :acl => ACL::PUBLIC_READ_WRITE)
@@ -497,7 +497,7 @@ module Aliyun
497
497
  query_1 = {
498
498
  :prefix => 'list-',
499
499
  'encoding-type' => 'url',
500
- 'uploads' => ''
500
+ 'uploads' => nil
501
501
  }
502
502
  return_up_1 = (1..5).map{ |i| Multipart::Transaction.new(
503
503
  :id => "txn-#{i}",
@@ -513,7 +513,7 @@ module Aliyun
513
513
  :prefix => 'list-',
514
514
  'upload-id-marker' => 'txn-5',
515
515
  'encoding-type' => 'url',
516
- 'uploads' => ''
516
+ 'uploads' => nil
517
517
  }
518
518
  return_up_2 = (6..8).map{ |i| Multipart::Transaction.new(
519
519
  :id => "txn-#{i}",
@@ -247,7 +247,7 @@ module Aliyun
247
247
  end
248
248
 
249
249
  it "should test bucket existence" do
250
- query = {'acl' => ''}
250
+ query = {'acl' => nil}
251
251
  return_acl = ACL::PUBLIC_READ
252
252
  stub_request(:get, bucket_url)
253
253
  .with(:query => query)
@@ -26,8 +26,8 @@ module Aliyun
26
26
  def crc_protocol
27
27
  Protocol.new(
28
28
  Config.new(:endpoint => @endpoint,
29
- :access_key_id => 'xxx',
30
- :access_key_secret => 'yyy',
29
+ :access_key_id => 'xxx',
30
+ :access_key_secret => 'yyy',
31
31
  :upload_crc_enable => true,
32
32
  :download_crc_enable => true))
33
33
  end
@@ -111,7 +111,7 @@ module Aliyun
111
111
  context "Initiate multipart upload" do
112
112
 
113
113
  it "should POST to create transaction" do
114
- query = {'uploads' => ''}
114
+ query = {'uploads' => nil}
115
115
  stub_request(:post, request_path).with(:query => query)
116
116
 
117
117
  @protocol.initiate_multipart_upload(
@@ -129,7 +129,7 @@ module Aliyun
129
129
  end
130
130
 
131
131
  it "should return transaction id" do
132
- query = {'uploads' => ''}
132
+ query = {'uploads' => nil}
133
133
  return_txn_id = 'zyx'
134
134
  stub_request(:post, request_path).
135
135
  with(:query => query).
@@ -143,7 +143,7 @@ module Aliyun
143
143
  end
144
144
 
145
145
  it "should raise Exception on error" do
146
- query = {'uploads' => ''}
146
+ query = {'uploads' => nil}
147
147
 
148
148
  code = 'InvalidArgument'
149
149
  message = 'Invalid argument.'
@@ -462,7 +462,7 @@ module Aliyun
462
462
 
463
463
  it "should GET to list multiparts" do
464
464
  request_path = "#{@bucket}.#{@endpoint}/"
465
- query = {'uploads' => ''}
465
+ query = {'uploads' => nil}
466
466
 
467
467
  stub_request(:get, request_path).with(:query => query)
468
468
 
@@ -475,7 +475,7 @@ module Aliyun
475
475
  it "should send extra params when list multiparts" do
476
476
  request_path = "#{@bucket}.#{@endpoint}/"
477
477
  query = {
478
- 'uploads' => '',
478
+ 'uploads' => nil,
479
479
  'prefix' => 'foo-',
480
480
  'upload-id-marker' => 'id-marker',
481
481
  'key-marker' => 'key-marker',
@@ -501,7 +501,7 @@ module Aliyun
501
501
  it "should get multipart transactions" do
502
502
  request_path = "#{@bucket}.#{@endpoint}/"
503
503
  query = {
504
- 'uploads' => '',
504
+ 'uploads' => nil,
505
505
  'prefix' => 'foo-',
506
506
  'upload-id-marker' => 'id-marker',
507
507
  'key-marker' => 'key-marker',
@@ -548,7 +548,7 @@ module Aliyun
548
548
  it "should decode object key" do
549
549
  request_path = "#{@bucket}.#{@endpoint}/"
550
550
  query = {
551
- 'uploads' => '',
551
+ 'uploads' => nil,
552
552
  'prefix' => 'foo-',
553
553
  'upload-id-marker' => 'id-marker',
554
554
  'key-marker' => 'key-marker',
@@ -614,7 +614,7 @@ module Aliyun
614
614
 
615
615
  it "should raise Exception on error" do
616
616
  request_path = "#{@bucket}.#{@endpoint}/"
617
- query = {'uploads' => ''}
617
+ query = {'uploads' => nil}
618
618
 
619
619
  code = 'InvalidArgument'
620
620
  message = 'Invalid argument.'