2012-09-26 2 views
0

특정 METADATA의 파일을 하늘색 상자에 업로드하려고합니다.메타 데이터가 포함 된 파일 업로드, Azure Java API

.net SDK를 사용하면 간단하게 put과 모두 metadata을 전송합니다.

그러나, 나는 자바를 시도하는 경우는 3 puts를 보내고 나는 cBlockBlob.uploadProperties() 명령을 실행하고, 3 put 때까지 때까지 metadata은 반영되지 않습니다.

왜 3을 통과합니까 puts? JAVA SDK에서 문제가됩니까?

이 1 이것은 2 이것은 3 풋 (metadata 필요 보여줍니다 것)

입니다

*PUT /mycontainer/0721ef8f-8d70-4b91-9d1f-04757363f903.xml?comp=blocklist&sr=c&timeout=4&si=WriteOnly&sig=eUe%2Fe7kcFcmiIzOVNgqbXd%2BjlIN3ZQd8fkQq3IsHQVQ%3D HTTP/1.1 
x-ms-version: 2011-08-18 
User-Agent: WA-Storage/Client v0.1.1 
Content-Type: 
Content-MD5: hYRJFeM5RFH29bPj3oxhwA== 
Host: certainhost.blob.core.windows.net 
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2 
Connection: keep-alive 
Content-Length: 100* 

<?xml version='1.0' encoding='UTF-8'?><BlockList><Uncommitted>AAAAAEm/C/E=</Uncommitted></BlockList> 

을 넣어이다

*PUT /mycontainer/0721ef8f-8d70-4b91-9d1f-04757363f903.xml?blockid=AAAAAEm%2FC%2FE%3D& comp=block&sr=c&timeout=4&si=WriteOnly& sig=eUe%2Fe7kcFcmiIzOVNgqbXd%2BjlIN3ZQd8fkQq3IsHQVQ%3D HTTP/1.1 
x-ms-version: 2011-08-18 
User-Agent: WA-Storage/Client v0.1.1 
Content-Type: 
Host: certainhost.blob.core.windows.net 
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2 
Connection: keep-alive 
Content-Length: 4613* 

을 넣어이다

*PUT /mycontainer/0721ef8f-8d70-4b91-9d1f-04757363f903.xml?comp=properties&sr=c&timeout=4&si=WriteOnly&sig=eUe%2Fe7kcFcmiIzOVNgqbXd%2BjlIN3ZQd8fkQq3IsHQVQ%3D HTTP/1.1 x-ms-version: 2011-08-18 User-Agent: WA-Storage/Client v0.1.1 Content-Type: x-ms-blob-content-encoding: utf-8 x-ms-meta-x-ms-meta-versionCFDI: 3.2 Host: certainhost.blob.core.windows.net Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2 Connection: keep-alive Content-Length: 0* 

이이

*PUT /mycontainer/0721ef8f-8d70-4b91-9d1f-04757363f903.xml?comp=properties&sr=c&timeout=4&si=WriteOnly&sig=eUe%2Fe7kcFcmiIzOVNgqbXd%2BjlIN3ZQd8fkQq3IsHQVQ%3D HTTP/1.1 
x-ms-version: 2009-09-19 
User-Agent: WA-Storage/6.0.6002.18312 
x-ms-blob-type: BlockBlob 
x-ms-meta-versionCFDI: 3.2 
Host: certainhost.blob.core.windows.net 
Content-Length: 6841 
Connection: Keep-Alive* 

뭔가 다른 .NET SDK에서 유일하게 넣어이며, 이것은 무엇을 의미합니까?

<?xml version='1.0' encoding='UTF-8'?><BlockList><Uncommitted>AAAAAEm//E=</Uncommitted></BlockList> 

두 번째 풋으로 보내 지므로 .net이 표시하지 않습니다.

답변

0

저는 JAVA SDK가 파일을 블록으로 분할하고 블록을 업로드한다는 사실을 믿습니다. 첫 번째 PUT은 "PUT Block"요청을 요청하고 두 번째 PUT은 "Commit Block List"요청이며 세 번째 PUT은 "Set Metadata"요청입니다. REST API 문서를 기반으로 BLOB의 메타 데이터를 "Commit Block List"작업 중에 설정할 수도 있습니다 (http://msdn.microsoft.com/en-us/library/windowsazure/dd179467.aspx). Java SDK가 블록 단위로 파일을 분할하고 업로드하는 동안 .NET SDK는이 요청을 한 번만 업로드하면 이상하게 보입니다. 이것이 자바 SDK에서 어떻게 구현되는지는 놀랄 일이 아닙니다. 업로드하려는 파일의 크기는 얼마입니까?

두 번째 질문에 대해서는 "차단 목록 실행"작업의 페이로드입니다.

관련 문제