aliyun / aliyun-oss-csharp-sdk

Aliyun OSS SDK for C#
MIT License
381 stars 206 forks source link

支持异步编程(Async和Await) #55

Open RainingNight opened 6 years ago

RainingNight commented 6 years ago

能不能使用Async/Await,别用那个Begin..../End.........了?

likan971 commented 5 years ago

是啊,都9102年了

crucialize commented 5 years ago

这就是国内云平台第一大厂的效率?真实有够好笑的呢^^

crucialize commented 5 years ago

大家可以用c#官方提供的wrapper将BeginInvoke/EndInvoke方式的包装成async/await方式的方法

var result = await Task.Factory.FromAsync((cb, o) => client.BeginPutObject(bucketName, objectName, stream, cb, o), client.EndPutObject, null);

看看参数形式,就会发现其余的函数的包裹方法类似。 @RainingNight @likan971 @Afanyiyu

RainingNight commented 4 years ago

@crucialize 这样看着不优雅啊。。。。。。

LiangZugeng commented 4 years ago

看来.NET确实是二等公民,java/node.js这种一等公民确实占优势。后来我们就自己写了,不仅仅是考虑异步编程,还写了一个云存储抽象层,以后从OSS换到AWS S3/Azure Blob会更方便。

但还是真心希望阿里云官方能够提供异步操作的SDK,可以省我们自己不少事情,这里不得不吐槽一下阿里云的文档:API文档看上去很全很强大什么都有,但质量实在是不高,信息也很分散,很多API看完文档后根本不能成功调用,必须要配合看某个语言的SDK实现(特别是认证这块,把我们折腾够了,一个OSS的上传回调的用法就足够开发人员喝一壶的了,比如验证回调请求是从OSS服务器过来的这种操作)。总之就是:阿里云文档感觉不是Technical Writer写的,而是把文档任务分配给开发人员,在完成代码以后写的,文档的顶层设计、结构和细节质量比较像小作坊的做法,是为了把信息记录下来写文档而不是帮助开发人员更有效理解和使用API写文档,也是难为阿里云的开发团队了。

竞品分析:没关注过国内其他云提供商,AWS的.NET SDK对.NET Core只提供Async风格的接口(没看错,只有Async没有同步),而微软的Azure SDK在Blob Storage的操作全部提供三种接口:

  1. 同步接口
  2. Begin/End风格的接口
  3. 基于Task的异步Async接口

.NET是微软的亲生儿子但是贵,而AWS在中国的市占率惨不忍睹,阿里云胜在便宜又大碗,基础的产品功能够用,其他细节质量牺牲一点市场也会买单的,谁让阿里云那么便宜。

我个人感觉:如果是非常大的项目大量使用云平台的服务,使用阿里云在开发和应用变更成本上会比使用AWS和Azure高,但运营成本会更低,看怎么选了。

jackletter commented 2 years ago

2021年了都,还不支持 Async/Await 。。。

jackletter commented 2 years ago

马上2022年了。。。。

jackletter commented 2 years ago

感人的alioss。。。

sclong02 commented 2 years ago

2022了,还是不支持?

woodsun2018 commented 2 years ago

这个问题提出已经4年了,访问网络服务基本上都是异步操作,到处都是async await,希望阿里云的技术管理者重视该问题,与时俱进

LeaFrock commented 2 years ago

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

jackletter commented 2 years ago

收到了 哈哈

sclong02 commented 2 years ago

卧槽,四年了,终于支持了