WPF 实现阿里云OSS私人云盘上传
最近公司同事跟合作商有工作对接,由于公司网络对百度云盘有下载限制,于是乎想到使用阿里云的OSS做为文件中转,公司也有开通了OSS,于是通过WPF开发了一个桌面小工具,方便双方高速的互传文件,相当于私人共享云盘。
实现代码
通过查询阿里云官方文档,OSS上传会生成回调,实现进度条的显示,主要实现代码如下:
开启多线程进行上传
await Task.Run(() => {
try
{
PINS.Util.AliyunOSS aliyunOSS = new PINS.Util.AliyunOSS();
using (var fs=File.Open(resourcepath,FileMode.Open))
{
var putObjectRequest = new PutObjectRequest(aliyunBucket, filepath, fs);
putObjectRequest.StreamTransferProgress += streamProgressCallback;
aliyunOSS.OssClientIntance().PutObject(putObjectRequest);
}
}
catch (Exception ex)
{
MessageBox.Show($"上传出错了:{ex.Message}");
}
});
回调方法
private void streamProgressCallback(object sender, StreamTransferProgressArgs args)
{
long value = args.TransferredBytes*100 / args.TotalBytes;
this.Dispatcher.Invoke(()=>{
pbprogress.Value = value;
this.txtProgress.Text = $"{value}%";
if (value == 100)
{
MessageBox.Show("上传成功!");
}
});
}
最终实现效果

本文介绍了一款基于WPF的桌面工具,利用阿里云OSS实现高速文件上传,作为公司间文件交换的解决方案。文章详细展示了通过多线程和回调方法实现的上传进度显示。
2481





