如何在不下载的情况下获取雾中s3对象的大小?
例如:
connection.get_object(dir.key, latest_backup.key).body.size
要求我先下载对象。
如何在下载之前找出尺寸?
答案 0 :(得分:2)
要查找文件的大小,请执行以下操作:
connection.head_object(bucket_name, object_name, options = {})
在回来的对象中查找:
Content-Length
这也将为您提供其他好的信息,例如ETag中的校验和以及其他类似的东西。
参考:http://rubydoc.info/gems/fog/Fog/Storage/AWS/Real#head_object-instance_method
答案 1 :(得分:1)
remote_file.content_length
为我做了伎俩(雾1.21.0)
其中remote_file
来自远程目录,如下所示:
def connection
Fog::Storage.new(fog_config)
end
def directory
connection.directories.get(bucket)
end
def remote_file
remote_files = directory.files.last
end
答案 2 :(得分:0)
.setPositiveStyle( (figure) => figure
.setStrokeStyle( (stroke) => stroke.setThickness(2) )
)
.setNegativeStyle( (figure) => figure
.setStrokeStyle( (stroke) => stroke.setThickness(2) )
)
module S3
def self.directory
connection.directories.new(key: ENV['AWS_BUCKET'])
end
def self.connection
Fog::Storage.new(
provider: 'AWS',
aws_access_key_id: ENV['AWS_ACCESS_KEY_ID'],
aws_secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'],
region: ENV['AWS_REGION']
)
end
def self.file(key)
directory.files.head(key)
end
end