1
Droboxにファイルをアップロードし、これらのファイルへの共有リンクを返す次の機能があります。Dropboxにアップロードできません。.NET SDK
private async Task<string> Upload(DropboxClient dbx, string localPath, string remotePath)
{
const int ChunkSize = 4096 * 1024;
using (var fileStream = File.Open(localPath, FileMode.Open))
{
if (fileStream.Length <= ChunkSize)
{
WriteMode mode = new WriteMode();
FileMetadata fileMetadata = await dbx.Files.UploadAsync(remotePath, body: fileStream, mode: mode.AsAdd, autorename: true);
//set the expiry date
var existingDoc = await dbx.Files.GetMetadataAsync(remotePath);
if (existingDoc.IsFile)
{
var sharedLink = dbx.Sharing.ListSharedLinksAsync(remotePath);
var settings = new ListSharedLinksArg(remotePath);
ListSharedLinksResult listSharedLinksResult = await dbx.Sharing.ListSharedLinksAsync(remotePath);
if (listSharedLinksResult.Links.Count > 0)
{
return listSharedLinksResult.Links[0].Url;
}
else
{
var settings2 = new SharedLinkSettings(expires: DateTime.Today.AddDays(7));
SharedLinkMetadata sharedLinkMetadata = await dbx.Sharing.CreateSharedLinkWithSettingsAsync(remotePath, settings2);
return sharedLinkMetadata.Url;
}
}
else
{
var settings = new SharedLinkSettings(expires: DateTime.Today.AddDays(7));
SharedLinkMetadata sharedLinkMetadata = await dbx.Sharing.CreateSharedLinkWithSettingsAsync(fileMetadata.PathLower, settings);
return sharedLinkMetadata.Url;
}
}
else
{
await this.ChunkUpload(dbx, remotePath, fileStream, ChunkSize);
}
return "error";
}
}
しかし、それはListSharedLinksAsync
関数になるとき、それは、正常に動作していない、それはすべてのエラーをスローwitout作業を停止します。私はそれがクラッシュした後、私がアップロードしようとするファイルにアクセスできないことに気付く
、私は「別のproccessエラーによって使用される」取得...
私が間違って何をしているのですか?
は、あなたがこの行でawaitをを欠落していないことでしょうか? '' 'var sharedLink = dbx.Sharing.ListSharedLinksAsync(remotePath);' '' – JOSEFtw
どのフレームワークのバージョンを使用していますか? – dadde
@JOSEFtw良い点、私はそれを試してみましょう。 – user3378165