我检查了整个azure-storage-blob
的宝石,却找不到任何方法来获取URI
的斑点。是否有某种方法可以正确,通用地构造它,使其适用于任何区域中的任何其他斑点?
我以前使用过S3 SDK,并且在S3中扎根,但对Azure还是陌生的。
答案 0 :(得分:1)
有一个名为blob_uri
的受保护方法,如下所示:
def blob_uri(container_name, blob_name, query = {}, options = {})
if container_name.nil? || container_name.empty?
path = blob_name
else
path = ::File.join(container_name, blob_name)
end
options = { encode: true }.merge(options)
generate_uri(path, query, options)
end
因此您可以使用以下快捷方式:
blob_client = Azure::Storage::Blob::BlobService.create(storage_account_name: 'XXX' , storage_access_key: 'XXX')
blob_client.send(:blob_uri, container_name,blob_name)
但是,实际的URI只是:
https://[storage_account_name].blob.core.windows.net/container/[container[s]]/[blob file name]
因此,由于您必须知道Blob名称和访问Blob的容器。
File.join(blob_client.host,container,blob_name)
是Blob的URI