2014-05-23 2 views
0

빠른 질문을하고 싶습니다.푸른 색 바탕에 SAS를 업로드 하시겠습니까?

블롭을 에 직접 입력하고 싶습니다. 블롭 저장 장치에을 직접 입력하십시오. Heres는 내가 생각 해낸 : 내가 blobSasUrl 설정이 코드 전에

public ActionResult Upload(HttpPostedFileBase file) 

    CloudBlobContainer blobContainerSas = new CloudBlobContainer(new Uri(blobSasUri)); 
    CloudBlockBlob blob = blobContainerSas.GetBlockBlobReference(BLOBNAMEHERE); 
    blob.UploadFromStream(file.InputStream); 

, (나는 그 부분을 왼쪽).

만약 내가 blob.UploadFromStream (file.InputStream) 궁금 해서요; 맞다? 지금 직접 업로드하나요?

업로드 할 때 SAS URI를 사용합니다. blob (컨테이너가 아님). 이것은 가능한가? 얼토당토 않는 아직 업로드 ... 컨테이너 대신 SAS URI를 사용해야합니까? // 혼동

고마워!

답변

2

아니요, 위의 예에서 사용자는 저장소 계정에 파일을 직접 업로드하지 않습니다. 그들은 Upload 액션을 호출하여 브라우저에서 웹 서버로 파일을 업로드하고 데이터를 저장 장치에 업로드합니다.

클라이언트 브라우저를 통해 데이터를 직접 저장소에 업로드하려면 CORSAJAX과 같은 개념을 사용해야합니다. 먼저 스토리지 계정에서 CORS를 활성화해야합니다. 이것은 브라우저가 저장소와 직접 상호 작용할 수 있도록해야 할 일회성 작업입니다.

CORS 설정을 설정하면 다음 CORS 설정으로 시작할 수 :

허용 도메인을 : 당신의 웹 사이트 주소 (당신은 또한 모든 웹 사이트는 스토리지에 액세스 할 수있는 의미있는 * 지정할 수 있습니다 될 수 있습니다. 당신이 정말로 밖으로 시작하는 경우 권장하지만 당신은 개념을 파악 한 후에는 반드시 지정해야합니다 매우 특정 웹 사이트 주소)

허용 방법 : PUT은 POST (이 당신이 당신의 자바 스크립트에서 사용하게 될 것 HTTP 동사를 표시 AJAX 호출)

허용 된 헤더 : * (*는 브라우저에서 보낸 모든 헤더가 허용됨을 의미합니다. 당신은 매우 어려운 디버깅하게 다른 헤더) 헤더 노출

을 보내와 다른 브라우저 경향이 충실해야 : * (* 모든 헤더)가 브라우저에 스토리지 서비스로 전송됩니다 의미

최대 나이 (초) : 3600

CORS를 사용하도록 설정하면 JavaScript/AJAX를 사용하여 사용자가 직접 저장소 계정에 파일을 업로드하는 응용 프로그램을 작성할 수 있습니다.

Azure에서 CORS 개념을 이해하는 방법에 대한 블로그 게시물 (http://msdn.microsoft.com/library/azure/dn535601.aspx)을 읽어보십시오.

나는 또한 당신이 여기에 읽을 수있는 자바 스크립트/AJAX를 사용하여 브라우저에서 파일 업로드를 증명하고있다 하늘빛과 CORS에 대한 블로그 게시물을 작성했습니다

: http://gauravmantri.com/2013/12/01/windows-azure-storage-and-cors-lets-have-some-fun/

을 CORS 규칙을 구성 할 경우, 당신은이 무료 유틸리티를 찾을 수 있습니다 유용한 회사 : http://blog.cynapta.com/2013/12/cynapta-azure-cors-helper-free-tool-to-manage-cors-rules-for-windows-azure-blob-storage/

+0

안녕하세요. 다시 한 번 감사드립니다! 예에 문제가 있습니다. 파일을 청크로 분할하지 않고 업로드 한 첫 번째 진행률은 진행률 : 0.00 %로 표시되고 이동하지는 않지만 그 밖의 모든 기능은 작동합니다. 다른 예제에서는 blob을 청크로 분할하면 아무 것도 작동하지 않습니다. 업로드 버튼을 누르면 오류가 발생합니다. 안전하지 않은 헤더 "Content-Length"를 설정하는 것을 거부했습니다. jquery-1.8.2.js : 8423 PUT http : // localhost : 62035/UPLOADEDFILENAME & comp = block & blockid = YmxvY2stMDAwMDAy 404 찾았습니다) 만약 내가 그에게 옳고 그른 sas url, 그것의 동일한 오류 메시지를 주면 그것은 중요하지 않습니다. – Reft

+0

내 다운로드 기능에 대한 내 생각은 사용자가 볼 수있는 모든 BLOB를 사용자에게 표시하는 것입니다. 사용자는 BLOB 중 하나를 클릭하여 모든 다운로드 마법이 발생하는 작업으로 사용자를 리디렉션 할 수 있습니다. 귀하의 예제에서 모든 코드가보기에 있습니다. 이 상황에서 제 아이디어가 효과가 있습니까? 그렇지 않다면 모든 얼룩에 대해 어떻게 sasurl을 얻어야합니까? CORS에 대해서 궁금합니다. BLOB를 직접 다운로드 할 때 왜 필요하지 않습니까? – Reft

+0

당신의 예제에 뭔가 잘못하고있는 것 같습니다. 두 프로젝트를 업로드하고 공유 할 수 있습니까? Thanks – Reft

관련 문제