2017-04-23 7 views
0

注:私たちは、Dropboxの商務アカウントを持っているhttps://www.dropboxforum.com/t5/API-support/Masking-Dropbox-URL/m-p/217458#M11358

:私はでdropboxforumでこれを投稿しました。のDropboxのURLマスキング

私たちはWebサイトサーバーからいくつかのファイルをdropboxに移動し、dropboxをストレージソリューションとして使用したいと考えています。

これらのファイルのいずれかをダウンロードしたい場合は、URLをGoogleドメインを指し示し、dropboxからdirctlyファイルをダウンロードしたいと考えています。

私たちのサイトには、ASP.Net(C#の)私は古いパブリックフォルダを使用してこれを行う方法のいくつかの解決策を見つけた

に基づいていますが、私は更新され解決策を見つけることができませんでした。

このファイルを公開して共有したり、共有リンクごとにデータベースにテーブルを保持したりすることはできません。 しかし、私はむしろ、URLを持っている:
https://www.OurDomain.com/File?id=1
の代わり:
https://www.dropbox.com/s/fxwygu566u3u2l6/doc.pdf?dl=0

EDIT: あなたが予測できるときHere's an articleは、私が何をしたいのかを正確に説明するが、そのDropboxののOLDパブリックフォルダに基づいてdropboxの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 instance'を '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