lib/fog/aliyun/models/storage/file.rb in fog-aliyun-0.3.7 vs lib/fog/aliyun/models/storage/file.rb in fog-aliyun-0.3.8
- old
+ new
@@ -33,15 +33,17 @@
attr_reader :directory
def copy(target_directory_key, target_file_key, options = {})
requires :directory, :key
- source_object = if directory.key == ''
+ directory_key = collection.check_directory_key(directory.key)
+ source_object = if directory_key == ''
key
else
- directory.key + '/' + key
+ directory_key + '/' + key
end
+ target_directory_key = collection.check_directory_key(target_directory_key)
target_object = if target_directory_key == ''
target_file_key
else
target_directory_key + '/' + target_file_key
end
@@ -50,14 +52,15 @@
target_directory.files.get(target_file_key)
end
def destroy
requires :directory, :key
- object = if directory.key == ''
+ directory_key = collection.check_directory_key(directory.key)
+ object = if directory_key == ''
key
else
- directory.key + '/' + key
+ directory_key + '/' + key
end
service.delete_object(object)
true
end
@@ -89,14 +92,15 @@
def url(expires, options = {})
expires = expires.nil? ? 0 : expires.to_i
requires :directory, :key
- object = if directory.key == ''
+ directory_key = collection.check_directory_key(directory.key)
+ object = if directory_key == ''
key
else
- directory.key + '/' + key
+ directory_key + '/' + key
end
service.get_object_http_url_public(object, expires, options)
end
def public_url
@@ -107,15 +111,15 @@
def save(options = {})
requires :body, :directory, :key
options['Content-Type'] = content_type if content_type
options['Content-Disposition'] = content_disposition if content_disposition
options.merge!(metadata_to_headers)
-
- object = if directory.key == ''
+ directory_key = collection.check_directory_key(directory.key)
+ object = if directory_key == ''
key
else
- directory.key + '/' + key
+ directory_key + '/' + key
end
if body.is_a?(::File)
data = service.put_object(object, body, options).data
elsif body.is_a?(String)
data = service.put_object_with_body(object, body, options).data
@@ -166,13 +170,14 @@
metadata_prefix + key.to_s.split(/[-_]/).map(&:capitalize).join('-')
end
def metadata_attributes
if last_modified
- object = if directory.key == ''
+ directory_key = collection.check_directory_key(directory.key)
+ object = if directory_key == ''
key
else
- directory.key + '/' + key
+ directory_key + '/' + key
end
data = service.head_object(object).data
if data[:status] == 200
headers = data[:headers]