Azure PHP SDK를 사용하여 큰 블록 블롭을 Azure 저장소에 업로드하려고합니다. 그러나이 방법을 수행하는 방법의 샘플을 찾을 수 없으므로 Azure PHP SDK를 사용하여 어떻게 수행합니까?Azure PHP SDK에서 큰 블록 블롭을 청크로 업로드하는 방법은 무엇입니까?
답변
다음은 작동하는 예제입니다. 위의 링크에서 언급 한 두 가지 기능을 사용했습니다.
<?php
require_once 'WindowsAzure/WindowsAzure.php';
use WindowsAzure\Common\ServicesBuilder;
use WindowsAzure\Common\ServiceException;
use WindowsAzure\Blob\Models\Block;
use WindowsAzure\Blob\Models\BlobBlockType;
define('CHUNK_SIZE', 1024*1024);//Block Size = 1 MB
try {
$connectionString = "UseDevelopmentStorage=true";
$instance = ServicesBuilder::getInstance();
$blobRestProxy = $instance -> createBlobService($connectionString);
$containerName = "mycontainer";
$blobName = "DSC01166.jpg";
$content = fopen("d:\DSC01166.jpg", "rb");
$index = 0;
$continue = True;
$counter = 1;
$blockIds = array();
while (!feof($content))
{
$blockId = str_pad($counter, 6, "0", STR_PAD_LEFT);
$block = new Block();
$block -> setBlockId(base64_encode($blockId));
$block -> setType("Uncommitted");
array_push($blockIds, $block);
echo $blockId . " | " . base64_encode($blockId) . " | " . count($blockIds);
echo " \n ";
echo " -----------------------------------------";
$data=fread($content, CHUNK_SIZE);
echo "Read " . strlen($data) . " of data from file";
echo " \n ";
echo " -----------------------------------------";
echo " \n ";
echo " -----------------------------------------";
echo "Uploading block #: " . $blockId + " into blob storage. Please wait.";
echo " -----------------------------------------";
echo " \n ";
$blobRestProxy -> createBlobBlock($containerName, $blobName, base64_encode($blockId), $data);
echo "Uploaded block: " . $blockId . " into blob storage. Please wait";
echo " \n ";
echo " -----------------------------------------";
echo " \n ";
$counter = $counter + 1;
}
fclose($content);
echo "Now committing block list. Please wait.";
echo " -----------------------------------------";
echo " \n ";
echo "hello";
$blobRestProxy -> commitBlobBlocks($containerName, $blobName, $blockIds);
echo " -----------------------------------------";
echo " \n ";
echo "Blob created successfully.";
}
catch(Exception $e){
// Handle exception based on error codes and messages.
// Error codes and messages are here:
// http://msdn.microsoft.com/en-us/library/windowsazure/dd179439.aspx
$code = $e->getCode();
$error_message = $e->getMessage();
echo $code.": ".$error_message."<br />";
}
?>
희망이 있습니다.
샘플 주셔서 감사합니다! 나는 가능한 한 빨리 그것을 살펴보고 그것을 시험해 보면 대답을 받아 들일 것이다. –
안녕하세요, 작동하지 않습니다. 5-6 개의 블록을 업로드하면 정지되고 잘못된 형식의 응답 오류가 발생합니다. 또한 작은 오타가 있습니다 ->'count (blockIds)'는'count ($ blockIds)'여야합니다. 아이디어? –
정확한 오류를 공유 할 수 있습니까? 또한 Fiddler와 같은 도구를 통해 요청/응답을 추적하여 전선을 통해 전송되는 내용을 정확하게 알면 도움이됩니다. 불행히도 PHP에 대한 지식은 전혀 없습니다. 나는 저장소 에뮬레이터로 이것을 시도하고 위의 코드를 사용하여 약 4MB 파일을 업로드했는데 그것은 나에게 잘 맞았다. –
- 1. 로그에 블롭을 추가하는 대신 블록 블롭을 사용하는 Microsoft Azure 웹 사이트가
- 2. 어떻게 블록 블롭을 PageBlob로 변환합니까?
- 3. 큰 파일 청크를 PHP curl로 청크로 다운로드하십시오.
- 4. Mac SDK를 사용하여 Sphero에 큰 (2 블록) orbBasic 프로그램을 업로드하는 방법은 무엇입니까?
- 5. Azure PutBlock 최대 블록
- 6. aws php sdk에서 DeleteOnTermination을 설정하는 방법은 무엇입니까?
- 7. 큰 HTML 테이블을 청크로 렌더링하기
- 8. 청크로 큰 sqlite 데이터베이스 업데이트
- 9. PHP : 큰 파일을 업로드하는 데 문제가 있습니다.
- 10. C#을 사용하여 Azure Blob 저장소에 DataTable을 업로드하는 방법은 무엇입니까?
- 11. 대용량 파일을 레일에 덩어리로 업로드하는 방법은 무엇입니까?
- 12. 큰 파일을 업로드하는 중입니다.
- 13. Google 드라이브 SDK에서 재개 가능한 업로드하는 방법은 무엇인가요?
- 14. sqlite3을 사용하여 파이썬에서 블롭을 가져 오는 가장 간결한 방법은 무엇입니까?
- 15. 청크로 업로드하려고 시도했습니다.
- 16. 큰 파일을 서버에 업로드하는 가장 빠른 방법은 무엇입니까
- 17. 매우 큰 폴더를 내 서버에 업로드하는 가장 빠른 방법은 무엇입니까?
- 18. Ruby on Rails에 큰 파일을 업로드하는 방법은 무엇입니까?
- 19. Facebook Android SDK로 큰 비디오를 Facebook 벽에 업로드하는 방법은 무엇입니까?
- 20. 자바 모바일 앱에서 더 큰 파일을 업로드하는 방법은 무엇입니까?
- 21. PHP를 사용하여 FTP 서버에 큰 파일을 업로드하는 방법은 무엇입니까?
- 22. Gnome GIO를 사용하여 파일을 논 블록 방식으로 청크로 읽는 방법?
- 23. 청크로 데이터를 encrpyt/decrypt하는 방법은 무엇입니까?
- 24. 큰 텍스트 파일을 Java의 청크로 구문 분석
- 25. 큰 이미지를 특정 청크로 분할하는 GDAL 기능
- 26. 큰 결과 집합을 mysql에서 청크로 읽으십시오.
- 27. 큰 HTML5 비디오를 청크로 다운로드하는 XMLHttpRequest?
- 28. PhotoResult를 서버에 업로드하는 방법은 무엇입니까?
- 29. codeigniter로 파일을 업로드하는 방법은 무엇입니까?
- 30. http 응답을 청크로 나누는 방법은 무엇입니까?
이 질문을 참조하십시오 : http://stackoverflow.com/questions/14889413/how-to-upload-a-blob-to-windows-azure-by-splitting-it-into-chunks-and-calling- pu. HTH. –
@GauravMantri 대답은 유용하지 않습니다. 왜냐하면 PHP 용 Azure SDK는 대답에 언급 된 API를 제공하지 않기 때문입니다. 또한 이미 소스를 살펴 보았지만 API를 사용하는 방법이 명확하지 않습니다. 호출해야하는 특정 워크 플로/메서드 체인이있는 것으로 보입니다. –