2016-09-29 2 views
0

나는 php에서 푸른 색 기억 장치에 디렉토리와 하위 디렉토리를 만들고 그 디렉토리를 얻고 싶다. 이것은 내 코드입니다.푸른 하늘 저장소에 Blob 디렉토리 이름 가져 오기

$blobRestProxy = ServicesBuilder::getInstance()->createBlobService($connection_string); 


$content = fopen("abc.txt", "r"); 
$blob_name = "dir1/dir2/di3/myblob"; 

try { 
    //Upload blob 
    $blobRestProxy->createBlockBlob("mycontainer", $blob_name, $content); 
} 
catch(ServiceException $e){ 
    // Handle exception based on error codes and messages. 
    // Error codes and messages are here: 
    // http://msdn.microsoft.com/library/azure/dd179439.aspx 
    $code = $e->getCode(); 
    $error_message = $e->getMessage(); 
    echo $code.": ".$error_message."<br />"; 
} 

나는 디렉토리 "DIR1".I이 그 예 How to create a sub container in azure storage location을 확인 싶어. 하지만 PHP가 아닙니다. 어느 누구도 PHP 코드에서 하늘빛으로 디렉토리를 만들고 얻는 방법을 알려줄 수 있습니까?

+0

'PHP 코드에서 azure로 디렉토리를 만들고 얻는 방법은 무엇입니까?'라는 의미를 설명해 주시겠습니까? –

+0

나는이 많은 하위 디렉토리에 디렉토리를 만들고 싶다. 주어진 링크 "content/blue/images/logo.jpg, content/blue/images/icon-start.jpg, content/red/images/icon-stop.jpg"를보고 디렉토리와 함께이 blob을 가져옵니다. 이름. "CloudBlobDirectory directory = cloudBlobClient.GetBlobDirectoryReference (directoryName);"링크에 예제가 나와 있습니다.하지만 PHP에서는 없습니다 – ankit

+0

블롭 스토리지는 하위 디렉토리를 지원하지 않습니다. 따라서 컨테이너 내부에 하위 디렉토리를 만들 수 없습니다. 근본적으로 당신의 BLOB 이름의 접두어로 서브 디렉토리의 환상을 만듭니다. 위의 예에서 'content/red/images'는 blob 접두사이고 blob의 이름은'content/red/images/icon-stop.jpg'입니다. 그것은 디렉토리에서 얼룩을 찾지 못하게합니다. 당신이 할 수있는 일은 프리픽스의 이름을 지정하는 프리픽스에 의한 검색을 수행하고 스토리지 서비스는 그 프리픽스로 시작하는 모든 블롭을 반환합니다. –

답변

0

ListBlobsOptions을 사용하면 컨테이너에서 Blob을 쿼리 할 때 특별히 개체를 설정할 수 있습니다. 요구 사항에 따라이 옵션의 setDelimiter('/')을 사용하여 가상 디렉터리와 BLOB 이름을 구분하는 구분 기호를 설정할 수 있습니다.

을 사용하면 listBlobs()의 결과 인 ListBlobsResult에서 가상 디렉터리 이름을 가져올 수 있습니다.

use MicrosoftAzure\Storage\Blob\Models\ListBlobsOptions; 
$listBlobsOptions = new ListBlobsOptions(); 
$listBlobsOptions->setDelimiter('/'); 
$result = $blobClient->listBlobs(<container_name>, $listBlobsOptions); 
foreach ($result->getBlobPrefixes() as $k => $b) { 
    //an instance of MicrosoftAzure\Storage\Blob\Models\BlobPrefix 
    array_push($return['blobPrefixes'], $b->getName()); 
} 

을 그리고 여기에 PHP를 위해 푸른 Staoge SDK에서 모듈을 사용하는 방법에 대한 예입니다

다음 코드를 고려하시기 바랍니다. 사용법에 대한 자세한 내용은 https://github.com/Azure-Samples/storage-blob-php-webapplication/blob/master/PHP/api/trial.php#L163에서 확인할 수 있습니다.

더 이상의 우려 사항이 있으면 언제든지 알려주세요.

관련 문제