2017-12-30 1 views
2

Azure Blob 저장소에 파일을 업로드하려면 내 앱에 React 버전의 FineUploader를 구현하고 있습니다.업로드 된 파일 정보를 FineUploader에서 가져 오는 중

파일을 업로드했으면 백엔드 데이터베이스에 정보를 저장해야합니다. 파일이 내 BLOB 저장소에 있다는 것을 알지 못한다면 데이터베이스에 파일 정보를 등록하고 싶지 않습니다. 여기에 내가 포착하는 데 필요한 정보입니다 :

  • 원래 파일 이름을
  • 할당 blobName 또는 uuid
  • 내가 할 수있는 경우, 파일 크기 정보가 너무 매우 유용 할 수는 있지만 반드시

만약이 아니다 나는 설명서를 바로 읽고 있는데, blobProperties이이 정보를 얻는 데 적합한 장소로 보이지만 지금까지는 제대로 작동하지 못했습니다.

blobProperties에서 blobName을 얻기 위해 데이터베이스를 호출 할 필요가 없습니다. 내가 할당 할 수있는 간단한 GUID 값은 괜 찮거나 간단하게 캡처합니다. uuid FineUploader가 지정합니다. 필요한 정보를 캡처하여 Redux 저장소에 저장하고 싶습니다.

const uploader = new FineUploaderAzure({ 
    options: { 
     blobProperties: function(id) { 

      // How do I get original file name here? 
      // If I can, I'd like to get file size as well. 
      // Once I know file's original name as well as the blobName assigned to it, I'll store them in my Redux store 
     }, 
     cors: { 
      expected: true, 
      sendCredentials: false 
     }, 
     signature: { 
      endpoint: 'http://myapp.com/api/getsas' 
     }, 
     request: { 
      endpoint: 'https://myaccount.blob.core.windows.net/my-container' 
     }, 
     callbacks: { 
      onComplete: function (id, name, responseJSON, xhr) { 

       myFunction(responseJSON); 

      } 
     } 
    } 
}) 

const myFunction = (responseJSON) => { 

    // If upload is successful, I'll get file details from Redux store and call my action creators 
    // to trigger an API call to my backend so that I can register uploaded files in my database. 
} 

나는 내가 찾고 파일 정보를 얻을하는 방법에 대한 몇 가지 포인터를 감사하겠습니다 : 나는 도움을 필요로하는 곳에

이입니다. onComplete 함수 인수 id

+0

나의 이해는 당신이 이런 일을 서버에서 JSON 응답을 구축 할 것입니다 귀하의 기능이처럼 그들을 호출 할 수 있습니다 = "MyFileName"})); - 어떻게 당신이 당신의 반응을 형성하고 있습니까? 슨? – Sarhang

+0

Azure Blob Storage에 직접 업로드하므로 파일이 이미 업로드 된 후 서버에 연결되지 않습니다. 아이디어는'onComplete'을 치면 내 서버 요청을 준비하는 것이지만 어쩌면 나는 규정 된 방법을 따르지 않을 것이다. – Sam

+0

더 명확히하기 위해 업로드가 완료되면 업로드 된 파일 정보를 캡처 한 다음 내 서버에 API 호출을 만들어 업로드 된 파일 정보를 백엔드 데이터베이스에 저장합니다. 이것이 올바른 워크 플로우가 아닌가? – Sam

답변

1

당신이

당신은

onComplete: function (id, name, responseJSON, xhr) { 
       uploader.methods.getName(id); 
       uploader.methods.getSize(id); 
       uploader.methods.getBlobName(id); 
       myFunction(responseJSON); 
      } 
+1

도움 주셔서 대단히 감사합니다! 보너스 포인트를받을 자격이 있습니다! 정말 감사합니다! – Sam

관련 문제