aliyun / alibabacloud-csharp-sdk

59 stars 32 forks source link

AlibabaCloud.SDK.Oss20190517 问题简单汇总 #11

Open jacksonwj opened 2 years ago

jacksonwj commented 2 years ago

由于在阿里云的 SDK 文档中,没有 C# 升级版的示例代码,只能摸索着测试,在目前用到的功能,碰到的异常和问题,罗列出来:

异常

  1. GetObjectWithOptionsAsync 报 #10 的异常:Object must implement IConvertible.(在调用 CopyObjectWithOptionsAsync 之前,调用了获取文件的方法,由于报异常,所以没有对复制文件的方法进行测试)

  2. DeleteMultipleObjectsWithOptionsAsync 异常:unsupported nest list.

  3. GetObjectTaggingWithOptionsAsync 异常:The request signature we calculated does not match the signature you provided. Check your key and signing method.(其他 Object 的方法都能正常访问,这个方法,提示签名算法异常)

其他

  1. 原 SDK 的 OssObjectSummary 中,含有 BucketName 这个属性,在新 SDK 的 Models.ObjectSummary 中,不再含有该属性,而是在 ListObjectsV2ResponseBody 中统一用 Name。请问,是否确定移除 Models.ObjectSummary 中的 BucketName 属性?

  2. ListObjectsV2WithOptionsAsync 请求/返回中的 StartAfter,请问,该属性,是否是原 SDK 中的 NextMarker

    • 如果是,在调用 ListObjectsV2WithOptionsAsync 之后,StartAfter 返回值为 null(已确定 Bucket 中的文件数量大于 Models.ListObjectsV2Request 中的 MaxKeys
    • 如果不是,那怎么对 Bucket 中的文件进行分页?
  3. 除了个别属性不同,请问,ListObjectsListObjectsV2 还有什么区别吗?看文档,建议使用 V2,意思是,后续 ListObjects 会删除吗?

    • 如果要删除,建议将 ListObjects 标记为已过时,并提示将在 xxx 版本删除。
    • 如果不删除,请说明一下两个方法的区别和使用场景。
  4. CopyObjectWithOptionsAsync 方法的前两个参数,是拷贝时的目的 Bucket 和 Key 吧?如果是,建议调整参数名(类似:DestBucket 之类的),这样更直观。

总的来说,升级版和旧版,有一些属性上的差异,我觉得是正常的,不过,感觉升级版的 SDK 待完善的地方还有很多,我这里只是我在项目里用到的方法的一个汇总。

yndu13 commented 2 years ago

感谢反馈,我们安排同学排查下。

jacksonwj commented 2 years ago

感谢反馈,我们安排同学排查下。

请问这个还有下文吗?

jacksonwj commented 1 year ago

@yndu13 这个还有下文吗?

LeaFrock commented 1 year ago

几个月过去了,问题还在(当前版本1.0.6):

System.InvalidCastException: Object must implement IConvertible.
   at System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider)
   at Tea.TeaModel.MapObj(Type propertyType, Object value)
   at Tea.TeaModel.ToObject[T](Dictionary`2 dict, T obj)
   at Tea.TeaModel.ToObject[T](IDictionary dict)
   at AlibabaCloud.SDK.Oss20190517.Client.GetObjectWithOptionsAsync(String bucket, String key, GetObjectRequest request, GetObjectHeaders headers, RuntimeOptions runtime)
   at AlibabaCloud.SDK.Oss20190517.Client.GetObjectAsync(String bucket, String key, GetObjectRequest request)
qiuyoo commented 2 months ago

GetObject 好像同样的问题,是不是没得救了?