是否存在用于找到斑点uri的红宝石方法?

时间:2019-02-12 16:28:58

标签: ruby sdk azure-storage-blobs

我检查了整个azure-storage-blob的宝石,却找不到任何方法来获取URI的斑点。是否有某种方法可以正确,通用地构造它,使其适用于任何区域中的任何其他斑点?

我以前使用过S3 SDK,并且在S3中扎根,但对Azure还是陌生的。

1 个答案:

答案 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