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