2017-04-23 1 views
0

참고 : 우리는 드롭 박스의 bussiness 계정이 https://www.dropboxforum.com/t5/API-support/Masking-Dropbox-URL/m-p/217458#M11358

: 나는에 dropboxforum이를 기록했다.보관 URL 마스킹

그리고 우리는 웹 사이트 서버에서 dropbox로 여러 파일을 이동하고 저장소 솔루션으로 dropbox를 사용하려고합니다.

사용자가 이러한 파일 중 하나를 다운로드하려면 URL을 Google 도메인을 가리 키고 dropbox에서 dirctly 파일을 다운로드하고 싶습니다.

저희 사이트는 ASP.Net (C#을) 나는 이전 공용 폴더를 사용하여이 작업을 수행하는 방법에 대한 몇 가지 해결책을 발견

에 기반을두고 있지만 업데이트 된 솔루션을 찾을 수 없어.

이 파일을 공개적으로 공유하고 각 공유 링크가있는 데이터베이스에 테이블을 보관하는 것은 중요하지 않습니다.
https://www.OurDomain.com/File?id=1
대신 :
https://www.dropbox.com/s/fxwygu566u3u2l6/doc.pdf?dl=0

편집 : 하지만 오히려 URL이 Here's an article 내가하고 싶은 것을 정확하게 설명을하지만, 그 보관의 OLD 공용 폴더를 기반으로, 당신은 예측할 수있을 때 드롭 박스의 URL

답변

0

Dropbox API의 일부인 DownloadAsync 메서드를 사용할 수 있습니다. Dropbox.NET tutorial에서 예를 바탕으로, 당신은이 작업을 수행 할 수 있습니다

async Task Download(DropboxClient dbx, string folder, string file) 
{ 
    using (var response = await dbx.Files.DownloadAsync(folder + "/" + file)) 
    { 
     return response.GetContentAsByteArrayAsync(); 
    } 
} 
+0

우리의 파일이 너무 크고,이 solutuon이 시간 초과되었습니다. 우리는 작동하는 chunk [link] (http://stackoverflow.com/questions/43208069/dropbox-net-downloading-large-files-using-getcontentasstreamasync)를 다운로드하는 유사한 솔루션을 구현했지만 Dropbox에서 직접 다운로드하고 제거하려고합니다. 우리 웹 사이트 서버에서 추가 작업. – JohnnyNPC

+0

파일이 큰 경우 요청, 백그라운드에서 다운로드, 캐시 (임시 디렉토리로) 및 파일 제공을위한 독립 실행 형 메커니즘을 구현하십시오. 'HttpApplication.Application_Start' 이벤트가 발생할 때 임시 디렉토리를 지우십시오. 'Download' 클래스의'Internal static 인스턴스 '를'Global' 클래스 안에 만듭니다. 파일을 다운로드하는 동안 "파일 가져 오기/기다려주십시오"라는 메시지를 사용자에게 표시하십시오. – Serge

+0

서버 쪽 파일을 다운로드하지 않으려면 [공유 링크] (https://www.dropbox.com/developers/documentation/http/documentation#sharing-create_shared_link_with_settings)를 만들고 [HttpResponse.Redirect]를 사용하여 사용자를 리디렉션 할 수 있습니다 ] (https://msdn.microsoft.com/en-us/library/a8wa7sdt.aspx) 메서드를 참조하십시오. Dropbox URL이 사용자에게 표시됩니다. – Serge