2012-10-08 1 views
0

웹 브라우저에서 Azure 저장소에 Azure BLOB로 text/html 문자열을 직접 업로드하고 싶습니다 (Azure VM/웹 서버) 브라우저 사이드 자바 스크립트를 사용합니다. 필자의 연구 결과에 따르면 Azure REST API + Shared Access Signature를 사용하여 Silverlight 클라이언트 또는 MVC 3보기에서이를 얻을 수 있음을 알고 있습니다. (SilverLight/MVC3을 사용하는 컨트롤에 대한 링크는 다음과 같습니다 : http://code.msdn.microsoft.com/silverlight/Silverlight-Azure-Blob-3b773e26#content). 또한 Node.JS https://github.com/jpgarcia/waz-storage-js과 함께 서버 사이드 자바 스크립트를 사용하여 업로드하기위한 라이브러리를 발견했습니다.자바 스크립트를 사용하여 브라우저에서 Windows Azure Blob에 텍스트 문자열을 직접 업로드하는 방법

제 질문은 브라우저 사이드 자바 스크립트와 html과 SAS (Silverlight 나 MVC를 사용하지 않고)만을 사용하여 Azure에 텍스트 문자열을 업로드하고 Azure에 텍스트 문자열을 업로드하는 방법입니다. 어떻게 문자열 값을 Azure 나머지 api 호출에 전달하겠습니까 (JSON 문자열을 사용할 수 있습니까?)? MSDN REST API 예제를 살펴 보았지만 업로드 할 텍스트 문자열을 전달하는 방법이 명확하지 않았습니다. 아무도 이것으로 도울 수 있습니까? 미리 감사드립니다.

답변

1

나는 이것을 할 수 없다고 생각합니다. 웹 페이지가 동일한 BLOB 저장소 도메인에서 호스팅되지 않는 한이 작업은 허용되지 않는 크로스 도메인 호출이됩니다 (CORS 헤더가 설정되지 않은 경우 BLOB 저장소가 아닌 경우).

또한 BLOB에 업로드하려면 HTTP PUT 요청이 필요하며 대부분의 브라우저는 POST와 GET 만 허용한다고 생각합니다.

UPDATE

아래 주석을 참조하지만, 일부 브라우저 PUT 요청을 허용 할 것 같습니다. 언급했듯이 동일한 출처 정책은 동일한 페이지 스토리지 계정에서 원본 페이지를 제공함으로써 무효화 될 수 있습니다. 이 경우, 코드는 다음과 같은 (사용하여 jQuery를) 보일 것이다

$.ajax({ 
    url: url, 
    type: 'PUT', 
    data: 'Hello, World!', 
    headers: {'Content-Type': 'text/html'} 
}).success(function() { 
    console.log('Saved successfully.'); 
}); 
+0

빠른 응답을 보내 주셔서 감사합니다. 스티브. 언급 한 두 가지 문제 중 제 1 교차 도메인은 동일한 Blob 저장소 도메인에서 웹 페이지를 호스팅 할 수 있기 때문에 극복 할 수 있습니다. 나머지 API 호출은 동일한 도메인의 동일한 BLOB를 업데이트합니다. # 2의 경우, Azure REST API에 대한 AJAX 호출의 라인을 따라 생각해 보았습니다.이 경우 PUT이 지원되어야한다고 생각합니다 (아약스 용). 이 두 가지 가능한 해결 방법이 주어지면 문제를 해결할 수 있습니까? 문자열을 JSON 매개 변수로 Azure REST API에 전달할 수 있습니까? – Jarnal

+0

주위를 검색 한 후 PUT 요청이 허용되는 것 같습니다. 본문에 관해서는 BLOB PUT 요청은 본문에 원시 데이터가 있으므로 JSON 인코딩 (또는 양식 인코딩)을 수행하지 마십시오. 그냥 본문에 직접 텍스트를 넣으십시오. – smarx

+0

jQuery의'$ .ajax' 문서에는 PUT을 사용해 볼 수는 있지만 모든 브라우저에서 지원되지는 않는다고 언급되어 있습니다. http://api.jquery.com/jQuery.ajax/를 참조하십시오. – smarx

0

당신은 자바 스크립트를 사용하여 MVC 사이트를 건드리지 않고 클라이언트에서 업로드 할 수 있습니다를, 내가 수행하는 방법에 대한 예와 블로그 게시물을 작성했습니다 이 http://blog.dynabyte.se/2013/10/09/uploading-directly-to-windows-azure-blob-storage-from-javascript/ 그것은 Gaurav Mantris post 기반으로하며 물방울 스토리지 자체에 자바 스크립트를 개최하여 작동합니다 code is at GitHub

.

관련 문제