aliyun / aliyun-oss-csharp-sdk

Aliyun OSS SDK for C#
MIT License
379 stars 204 forks source link

需要所有上传与下载请求都支持Async异步方法 #101

Open FatTigerWang opened 4 years ago

FatTigerWang commented 4 years ago

我们正在ASP.NET Core上使用Aliyun OSS SDK,但是发现没有异步上传的方法,能否提供?

FatTigerWang commented 4 years ago

看了你们是基于HttpWebRequest的.....

liguobao commented 4 years ago

同样需要。

LeaFrock commented 3 years ago

三年前就有人提出支持async/await、返回Task的API了…… 阿里维护的.NET项目,也只能这样了。 时间越长,更是积重难返,又没效益。

liguobao commented 3 years ago

现在正在使用的异步方法。


 /// <summary>
        /// 获取OSS文件内容
        /// </summary>
        public async Task<Stream> GetFileContentAsync(string ossKey)
        {
            var tcs = new TaskCompletionSource<OssObject>();
            _ossClient.BeginGetObject(_config.AliyunOSSFileContentBucket,
                ossKey,
                asyncResult =>
                {
                    var result = _ossClient.EndGetObject(asyncResult);
                    tcs.SetResult(result);
                },
                null);
            var result = await tcs.Task;
            if (result.HttpStatusCode == HttpStatusCode.NotFound)
            {
                return default(Stream);
            }

            return result.ResponseStream;
        }

这就很蛋疼了////

LeaFrock commented 2 years ago

更新:新版OSS SDK可以关注此仓库。底层使用的HttpClient,有纯异步的API。Nuget搜索AlibabaCloud.SDK.Oss20190517即可。