Je souhaite donc faire correspondre des noms spécifiques à des blobs à l'intérieur de mon conteneur et, pour une raison quelconque, je ne peux pas transmettre de noms spécifiques.

Voici le code:

public function blob_exists(string $name, string $prefix = '') : int
{
    $list_blobs_options = new ListBlobsOptions();
    $list_blobs_options->setPrefix($prefix . $name);
    $result = $this->connect()->listBlobs($this->container_name,
            $list_blobs_options);

    return count($result->getBlobs());
}

Problème :

Disons que j'ai un nom SMITHRA, il renvoie un count: 1 car il a trouvé le nom SMITHRAC dans le conteneur. Existe-t-il un moyen de faire en sorte que les $name soient des correspondances spécifiques et pas seulement le préfixe ?

Alors disons que je fais ça :

var_dump($azure->blob_exists('SMITHRA', 'Big/')); .. J'obtiens une valeur de 1 renvoyée car il a trouvé Big/SMITHRAC dans le conteneur, j'aimerais renvoyer uniquement le Big/SMITHRA correspondant.

0
SLE 2 nov. 2020 à 16:22

1 réponse

Meilleure réponse

Si vous souhaitez vérifier si un blob existe avec PHP, vous pouvez vous référer au code suivant

$containerName ='';
$name=""
$blobClient = BlobRestProxy::createBlobService($connectionString);
try {
       
        $getBlobResult = $blobClient->getBlob($containerName, $name);
} catch (ServiceException $e) {
        $code = $e->getCode();
        if($code==404){
             echo "The specified blob does not exist.";
        }
}
1
Jim Xu 5 nov. 2020 à 06:22