【问题标题】:Checking if a blob exists in Azure Blob storage (php)检查 Azure Blob 存储中是否存在 blob (php)
【发布时间】:2013-07-05 18:56:13
【问题描述】:

简单的问题;如何使用文件名在 Azure blob 存储中使用 PHP 检查 blob 是否存在?我似乎在 API 中找不到它。

干杯

【问题讨论】:

    标签: php azure-blob-storage


    【解决方案1】:

    我今天正在寻找这个,这是最热门的搜索结果,所以想在这里给出我的解决方案,它使用前缀选项来仅查找与我正在寻找的名称匹配的 blob。

    您还需要包含use MicrosoftAzure\Storage\Blob\Models\ListBlobsOptions;

    function blobExists($name)
    {
        global $blobClient, $blobContainer;
    
        $listBlobsOptions = new ListBlobsOptions();
        $listBlobsOptions->setPrefix($name);
        $result = $blobClient->listBlobs($blobContainer, $listBlobsOptions);
        return count($result->getBlobs());
    }
    

    【讨论】:

    • 有没有办法可以针对特定的 blob?除了获得所有“SMITH”回报之外,我可以只获得SMITHRA 的匹配回报吗?
    • 除非我误解了你的问题,你不能只将SMITHRA 传递给函数,即blobExists('SMITHRA')吗?
    • 我用这个方法让它工作了,$listBlobsOptions->setPrefix($name . '.jpg'); - 它工作的唯一方法是事后添加图片扩展,但效果很好,谢谢!如果我没有扩展,我将获得 SMITHRA 的所有回报,如 SMITHRAC、SMITHRAZ 等。因为listBolbs 返回所有 blob,而不仅仅是一个。
    • 啊,你没有提到你想寻找一个特定的文件扩展名!很高兴它对你有用。
    【解决方案2】:

    使用适用于 Azure 的 PHP SDK。

    / Create blob REST proxy.
    $blobRestProxy = ServicesBuilder::getInstance()->createBlobService($connectionString);
    
    // Get blob.
    $blob = $blobRestProxy->getBlob("mycontainer", "myblob");
    if ($blob) {
       //blob exists
    } 
    

    【讨论】:

    • 谢谢,我认为这适用于新的 SDK,但如果您使用的是 v4,我会看到我的答案,以另一种方式做到这一点。
    • 这不起作用。如果 blob 不存在,则会抛出错误“BlobNotFound”
    • 不能抛出错误,只能抛出异常。因此,请随时将任何更新的 SDK 功能编辑为 try {} catch (Exception)
    【解决方案3】:

    使用 PHP SDK v4.10 的解决方案

    http://phpazure.codeplex.com/

    $storageClient = $this->azure->get_blob_storage();
    
                        //check if blob exists
    
            $exists = $storageClient->blobExists(<container name>, <blob name>);
    

    进入 SDK 文件夹中的 blob.php 以查看 API 函数的完整列表。

    【讨论】:

      猜你喜欢
      • 2011-02-08
      • 1970-01-01
      • 1970-01-01
      • 2011-10-14
      • 2020-06-04
      • 2017-11-02
      • 2017-11-07
      • 1970-01-01
      • 2013-04-18
      相关资源
      最近更新 更多