lib/fog/dtdream/models/storage/files.rb in fog-dtdream-0.0.6 vs lib/fog/dtdream/models/storage/files.rb in fog-dtdream-0.0.7

- old
+ new

@@ -16,26 +16,27 @@ def all(options = {}) requires :directory if directory.key != "" && directory.key != "." && directory.key != nil prefix = directory.key+"/" end - files = service.list_objects({:prefix => prefix})["ListBucketResult"]["Contents"] + files = service.list_objects({:prefix => prefix})["Contents"] data = Array.new i = 0 files.each do |file| - if file["Key"][-1] != "/" - content_length = file["Size"].to_i - key = file["Key"] - lastModified = file["LastModified"] - if lastModified != nil && lastModified != "" - last_modified = (Time.parse(lastModified)).localtime - else - last_modified = nil - end - data[i] = {:content_length=>content_length, - :key=>key, - :last_modified=>last_modified} + 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 + data[i] = {:content_length => content_length, + :key => key, + :last_modified => last_modified, + :etag => file["ETag"][0]} i = i + 1 end end load(data) @@ -67,11 +68,11 @@ object = directory.key+"/"+key end data = service.head_object(object).data contentLen = data[:headers]["Content-Length"].to_i - if data[:status] != 200 || contentLen <= 0 + if data[:status] != 200 return nil end lastModified = data[:headers]["Last-Modified"] if lastModified != nil && lastModified != "" last_modified = (Time.parse(lastModified)).localtime @@ -81,11 +82,13 @@ file_data = { :content_length => contentLen, :key => key, - :last_modified => last_modified + :last_modified => last_modified, + :content_type => data[:headers]["Content-Type"], + :etag => data[:headers]["ETag"] } if block_given? pagesNum = (contentLen + Excon::CHUNK_SIZE - 1)/Excon::CHUNK_SIZE @@ -151,10 +154,12 @@ end file_data = { :content_length => data[:headers]["Content-Length"].to_i, :key => key, - :last_modified => last_modified + :last_modified => last_modified, + :content_type => data[:headers]["Content-Type"], + :etag => data[:headers]["ETag"] } new(file_data) rescue Fog::Storage::Dtdream::NotFound nil end