lib/fog/aliyun/models/storage/files.rb in fog-aliyun-0.1.0 vs lib/fog/aliyun/models/storage/files.rb in fog-aliyun-0.2.0

- old
+ new

@@ -11,193 +11,173 @@ attribute :path attribute :prefix model Fog::Storage::Aliyun::File - def all(options = {}) + def all(_options = {}) requires :directory - if directory.key != "" && directory.key != "." && directory.key != nil - prefix = directory.key+"/" + if directory.key != '' && directory.key != '.' && !directory.key.nil? + prefix = directory.key + '/' end - files = service.list_objects({:prefix => prefix})["Contents"] - if nil == files - return - end - data = Array.new + files = service.list_objects(prefix: prefix)['Contents'] + return if nil == files + data = [] i = 0 files.each do |file| - if file["Key"][0][-1] != "/" - content_length = file["Size"][0].to_i - key = file["Key"][0] - lastModified = file["LastModified"][0] - if lastModified != nil && lastModified != "" - last_modified = (Time.parse(lastModified)).localtime - else - last_modified = nil - end - type = file["Type"][0] - data[i] = {:content_length => content_length, - :key => key, - :last_modified => last_modified, - :etag => file["ETag"][0], - :object_type => type} - i = i + 1 - end + next unless file['Key'][0][-1] != '/' + content_length = file['Size'][0].to_i + key = file['Key'][0] + lastModified = file['LastModified'][0] + last_modified = if !lastModified.nil? && lastModified != '' + Time.parse(lastModified).localtime + end + type = file['Type'][0] + data[i] = { content_length: content_length, + key: key, + last_modified: last_modified, + etag: file['ETag'][0], + object_type: type } + i += 1 end load(data) - end - alias_method :each_file_this_page, :each + alias each_file_this_page each def each if !block_given? self else subset = dup.all - subset.each_file_this_page {|f| yield f} - while subset.length == (subset.limit || 10000) - subset = subset.all(:marker => subset.last.key) - subset.each_file_this_page {|f| yield f} + subset.each_file_this_page { |f| yield f } + while subset.length == (subset.limit || 10_000) + subset = subset.all(marker: subset.last.key) + subset.each_file_this_page { |f| yield f } end self end end - def get(key, &block) + def get(key) requires :directory - if directory.key == "" - object = key - else - object = directory.key+"/"+key - end - + object = if directory.key == '' + key + else + directory.key + '/' + key + end + if block_given? - pagesNum = (contentLen + Excon::CHUNK_SIZE - 1)/Excon::CHUNK_SIZE - + pagesNum = (contentLen + Excon::CHUNK_SIZE - 1) / Excon::CHUNK_SIZE + for i in 1..pagesNum - _start = (i-1)*(Excon::CHUNK_SIZE) - _end = i*(Excon::CHUNK_SIZE) - 1 + _start = (i - 1) * Excon::CHUNK_SIZE + _end = i * Excon::CHUNK_SIZE - 1 range = "#{_start}-#{_end}" data = service.get_object(object, range) chunk = data[:body] yield(chunk) body = nil end else data = service.get_object(object) body = data[:body] end - - contentLen = data[:headers]["Content-Length"].to_i - if data[:status] != 200 - return nil - end - lastModified = data[:headers]["Last-Modified"] - if lastModified != nil && lastModified != "" - last_modified = (Time.parse(lastModified)).localtime - else - last_modified = nil - end - date = data[:headers]["Date"] - if date != nil && date != "" - date = (Time.parse(date)).localtime - else - date = nil - end + contentLen = data[:headers]['Content-Length'].to_i + return nil if data[:status] != 200 + lastModified = data[:headers]['Last-Modified'] + last_modified = if !lastModified.nil? && lastModified != '' + Time.parse(lastModified).localtime + end + + date = data[:headers]['Date'] + date = (Time.parse(date).localtime if !date.nil? && date != '') file_data = { - :body => body, - :content_length => contentLen, - :key => key, - :last_modified => last_modified, - :content_type => data[:headers]["Content-Type"], - :etag => data[:headers]["ETag"], - :date => date, - :connection => data[:headers]["Connection"], - :accept_ranges => data[:headers]["Accept-Ranges"], - :server => data[:headers]["Server"], - :object_type => data[:headers]["x-oss-object-type"], - :content_disposition => data[:headers]["Content-Disposition"] + body: body, + content_length: contentLen, + key: key, + last_modified: last_modified, + content_type: data[:headers]['Content-Type'], + etag: data[:headers]['ETag'], + date: date, + connection: data[:headers]['Connection'], + accept_ranges: data[:headers]['Accept-Ranges'], + server: data[:headers]['Server'], + object_type: data[:headers]['x-oss-object-type'], + content_disposition: data[:headers]['Content-Disposition'] } new(file_data) end def get_url(key) requires :directory - if directory.key == "" - object = key - else - object = directory.key+"/"+key - end + object = if directory.key == '' + key + else + directory.key + '/' + key + end service.get_object_http_url_public(object, 3600) end def get_http_url(key, expires, options = {}) requires :directory - if directory.key == "" - object = key - else - object = directory.key+"/"+key - end + object = if directory.key == '' + key + else + directory.key + '/' + key + end service.get_object_http_url_public(object, expires, options) end def get_https_url(key, expires, options = {}) requires :directory - if directory.key == "" - object = key - else - object = directory.key+"/"+key - end + object = if directory.key == '' + key + else + directory.key + '/' + key + end service.get_object_https_url_public(object, expires, options) end - def head(key, options = {}) + def head(key, _options = {}) requires :directory - if directory.key == "" - object = key - else - object = directory.key+"/"+key - end + object = if directory.key == '' + key + else + directory.key + '/' + key + end data = service.head_object(object).data - lastModified = data[:headers]["Last-Modified"] - if lastModified != nil && lastModified != "" - last_modified = (Time.parse(lastModified)).localtime - else - last_modified = nil - end + lastModified = data[:headers]['Last-Modified'] + last_modified = if !lastModified.nil? && lastModified != '' + Time.parse(lastModified).localtime + end - date = data[:headers]["Date"] - if date != nil && date != "" - date = (Time.parse(date)).localtime - else - date = nil - end + date = data[:headers]['Date'] + date = (Time.parse(date).localtime if !date.nil? && date != '') file_data = { - :content_length => data[:headers]["Content-Length"].to_i, - :key => key, - :last_modified => last_modified, - :content_type => data[:headers]["Content-Type"], - :etag => data[:headers]["ETag"], - :date => date, - :connection => data[:headers]["Connection"], - :accept_ranges => data[:headers]["Accept-Ranges"], - :server => data[:headers]["Server"], - :object_type => data[:headers]["x-oss-object-type"] + content_length: data[:headers]['Content-Length'].to_i, + key: key, + last_modified: last_modified, + content_type: data[:headers]['Content-Type'], + etag: data[:headers]['ETag'], + date: date, + connection: data[:headers]['Connection'], + accept_ranges: data[:headers]['Accept-Ranges'], + server: data[:headers]['Server'], + object_type: data[:headers]['x-oss-object-type'] } new(file_data) rescue Fog::Storage::Aliyun::NotFound nil end def new(attributes = {}) requires :directory - super({ :directory => directory }.merge!(attributes)) + super({ directory: directory }.merge!(attributes)) end end end end end