alibabacloud-csharp-sdk's People
Forkers
sdk-team aiical 63205298 wangronghua jixian001 yunjie-yao 17600633992 leagiboy hanj73 kissyfn zuyao dreamdalezhang uvaa jiaogzstar 15263282866 ijasonchen91 chinaqqm tuhongwu dfgerafewg vbegin yangay2023 wiswin lizaijinsheng joy1792 z-adong 554393109alibabacloud-csharp-sdk's Issues
Nlp_automl20191111 版本能不能调用情绪识别服务
情绪识别服务 https://help.aliyun.com/document_detail/181220.html?spm=a2c4g.181139.0.i0
我使用Nlp_automl20191111尝试调用 情绪识别服务 版本一直报错400, Specified parameter Version is not valid
`
AlibabaCloud.SDK.Nlp_automl20191111.Models.RunPreTrainServiceRequest runPreTrainServiceNewRequest = new AlibabaCloud.SDK.Nlp_automl20191111.Models.RunPreTrainServiceRequest { PredictContent="我爱你",ServiceName= "DeepEmotion",ServiceVersion= "2020-06-29" };
AlibabaCloud.TeaUtil.Models.RuntimeOptions runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions();
var rsp = await _httpClient.RunPreTrainServiceWithOptionsAsync(runPreTrainServiceNewRequest, runtime);`
我看了alinlp-20200629版本里已经没有RunPreTrainService方法了 也不知道调哪一个
官方示例 链接到 aliyun-openapi-net-sdk 搞不懂 纯openapi方法也没有
不知道哪一个sdk能调用这个服务
目前的版本在Centos7的版本上调用发送短信Api会报错,在Windows上运行是正常
错误信息为:
One or more errors occurred. (The SSL connection could not be established, see inner exception.)
System.AggregateException: One or more errors occurred. (The SSL connection could not be established, see inner exception.)
---> System.Net.Http.HttpRequestException: The SSL connection could not be established, see inner exception.
---> System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure.
at System.Net.Security.SslStream.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, ExceptionDispatchInfo exception)
at System.Net.Security.SslStream.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslStream.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslStream.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslStream.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslStream.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslStream.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslStream.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslStream.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslStream.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslStream.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslStream.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslStream.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslStream.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslStream.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslStream.PartialFrameCallback(AsyncProtocolRequest asyncRequest)
--- End of stack trace from previous location where exception was thrown ---
at System.Net.Security.SslStream.ThrowIfExceptional()
at System.Net.Security.SslStream.InternalEndProcessAuthentication(LazyAsyncResult lazyResult)
at System.Net.Security.SslStream.EndProcessAuthentication(IAsyncResult result)
at System.Net.Security.SslStream.EndAuthenticateAsClient(IAsyncResult asyncResult)
at System.Net.Security.SslStream.<>c.b__65_1(IAsyncResult iar)
at System.Threading.Tasks.TaskFactory1.FromAsyncCoreLogic(IAsyncResult iar, Func
2 endFunction, Action1 endAction, Task
1 promise, Boolean requiresSynchronization)
--- End of stack trace from previous location where exception was thrown ---
at System.Net.Http.ConnectHelper.EstablishSslConnectionAsyncCore(Stream stream, SslClientAuthenticationOptions sslOptions, CancellationToken cancellationToken)
--- End of inner exception stack trace ---
at System.Net.Http.ConnectHelper.EstablishSslConnectionAsyncCore(Stream stream, SslClientAuthenticationOptions sslOptions, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean allowHttp2, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.GetHttpConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken)
at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.HttpClient.FinishSendAsyncBuffered(Task`1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts)
--- End of inner exception stack trace ---
at AlibabaCloud.OpenApiClient.Client.DoRPCRequest(String action, String version, String protocol, String method, String authType, String bodyType, OpenApiRequest request, RuntimeOptions runtime)
at AlibabaCloud.SDK.Dysmsapi20170525.Client.SendSmsWithOptions(SendSmsRequest request, RuntimeOptions runtime)
at AlibabaCloud.SDK.Dysmsapi20170525.Client.SendSms(SendSmsRequest request)
请问是需要加什么配置,还是Linux上的Bug呢?
这个后续维护是否积极呢?
现在需要在生产环境中使用C# sdk 旧的不支持异步,新的看下载量比较低,就比较犹豫
关于调用 API BatchAddDeviceGroupRelations 出错的问题
发送短信问题报错
"ClassName":"System.Net.WebException","Message":"operation is timeout","Data":null,"InnerException":null,"HelpURL":null,"StackTraceString":" at AlibabaCloud.OpenApiClient.Client.DoRequestAsync(Params params_, OpenApiRequest request, RuntimeOptions runtime)\n at AlibabaCloud.OpenApiClient.Client.CallApiAsync(Params params_, OpenApiRequest request, RuntimeOptions runtime)\n at AlibabaCloud.SDK.Dysmsapi20170525.Client.SendSmsWithOptionsAsync(SendSmsRequest request, RuntimeOptions runtime)
只要报错了,后面就一直报错。配置了ConnectTimeout,ReadTimeout,MaxAttempts,都没有用
使用`partial`关键字对大文件进行拆分
你们的SDK里有很多上万行的大文件,建议进行拆分。
.Net从很久以前就支持partial
关键字,把一个class拆到多个文件里。
比如.Net Runtime的TimeZone
类,就拆分了很多文件。
具体到你们sdk里,比如:
https://github.com/aliyun/alibabacloud-csharp-sdk/blob/master/ecs-20140526/core/Client.cs
这个文件3.xMiB,6万多行。
可以改成partial class,按功能拆成Client.Feature1.cs
、Client.Feature2.cs
,增加可维护性。
在某一台电脑上发送失败,显示Newtonsoft.Json相关异常
错误日志如下,请问是什么问题?在别的电脑上都可以,在一台新电脑上已发送就报这个错误。
[21:01:30.655 ] [ ERROR ] Read Response Failed
[ 21:01:30.655 ] [ ERROR ] Newtonsoft.Json.JsonReaderException: Unexpected character encountered while parsing value: <. Path '', line 0, position 0. Unexpected character encountered while parsing value: <. Path '', line 0, position 0.
Button.OnClick => Control.OnClick => FormMain.button1_Click
[ 21:01:30.666 ] [ ERROR ] 在 AlibabaCloud.OpenApiClient.Client.DoRequest(Params params_, OpenApiRequest request, RuntimeOptions runtime)
在 AlibabaCloud.OpenApiClient.Client.CallApi(Params params_, OpenApiRequest request, RuntimeOptions runtime)
在 AlibabaCloud.SDK.Dysmsapi20170525.Client.SendSmsWithOptions(SendSmsRequest request, RuntimeOptions runtime)
在 DTS.FormMain.button1_Click(Object sender, EventArgs e)
[ 21:01:30.666 ] [ ERROR ] Newtonsoft.Json.JsonReaderException: Unexpected character encountered while parsing value: <. Path '', line 0, position 0. Unexpected character encountered while parsing value: <. Path '', line 0, position 0.
Button.OnClick => Control.OnClick => FormMain.button1_Click
有没有强名称(strong name)版的SDK
有没有强名称(strong name)版的SDK
AlibabaCloud.SDK.Pds20220301 存在 BUG,无法通过 AK 调用 API
AlibabaCloud.SDK.Pds20220301 --version 1.0.3
使用 AK 调用接口时始终返回错误 code: 403, SignatureDoesNotMatch.
定位到问题位于 AlibabaCloud.GatewayPds.Client,该类中的以下两个方法存在错误,导致用于 AK 签名的字符串中未包含前缀为 x-acs- 的 HTTP 请求头
public List<string> GetSignedHeaders(Dictionary<string, string> headers)
{
List<string> list = ArrayUtil.AscSort(MapUtil.KeySet(headers));
string text = "";
string text2 = "";
foreach (string item in list)
{
string text3 = StringUtil.ToLower(item);
if (StringUtil.HasPrefix(text3, "x-acs-") && !StringUtil.Contains(text, text3))
{
text = text + text2 + text3;
text2 = ";";
}
}
// SDK 中存在 bug 的原代码
//return StringUtil.Split(text, ";", 0);
// 修改后
return StringUtil.Split(text, ";", null);
}
public async Task<List<string>> GetSignedHeadersAsync(Dictionary<string, string> headers)
{
List<string> list = ArrayUtil.AscSort(MapUtil.KeySet(headers));
string text = "";
string text2 = "";
foreach (string item in list)
{
string text3 = StringUtil.ToLower(item);
if (StringUtil.HasPrefix(text3, "x-acs-") && !StringUtil.Contains(text, text3))
{
text = text + text2 + text3;
text2 = ";";
}
}
// SDK 中存在 bug 的原代码
//return StringUtil.Split(text, ";", 0);
// 修改后
return StringUtil.Split(text, ";", null);
}
AlibabaCloud.SDK.Dingtalk最新版本的使用文档
AlibabaCloud.SDK.Dysmsapi20170525的构造函数支持IOptions<T>
请求需要用到AlibabaCloud.OpenApiClient.Models.Config
,但目前AlibabaCloud.SDK.Dysmsapi20170525
的构造函数中AlibabaCloud.OpenApiClient.Models.Config
是直接作为参数传递的,在Core
中实体一般是通过IOptions<T>
注入的,建议通过#if
来支持
AlibabaCloud.SDK.Dyplsapi20170525 1.0.6 没有了QueryCallStatus方法
.NET Core/5.0 支持问题
很高兴贵团队推出了新的升级版SDK,相较于之前原版,该版本提供了基于async/await的异步方法支持,值得肯定。
不过目前在实际应用中,我注意到该项目的核心组件Tea依赖于Nuget包BouncyCastle,而该Nuget包仅适用于.NET Framework程序。这导致了.NET 5项目中一旦引用该SDK的Nuget包,编译时IDE会发出警告:
已使用“.NETFramework,Version=v4.6.1, .NETFramework,Version=v4.6.2, .NETFramework,Version=v4.7, .NETFramework,Version=v4.7.1, .NETFramework,Version=v4.7.2, .NETFramework,Version=v4.8”而不是项目目标框架“net5.0”还原包“BouncyCastle 1.8.6.1”。此包可能与项目不完全兼容。
在RELEASE模式下Publish时会直接提示发布失败。
在BouncyCastle官网上可以看到发行记录,其中1.8.5版本发行记录中提到:
这是支持旧版.NET平台的最终功能版本。从1.9.0版开始,我们将针对更现代的.NET框架,并更新我们的构建和打包系统。1.8.x系列将继续收到错误修复,但新功能有限。
希望贵团队能及时关注该依赖项的更新,并尽快解决这个问题。最坏的可能是需要对NFX和Core后的.NET版本做分别依赖并打包,或者干脆换掉该依赖。
阿里云视频点播功能有.net版本的sdk吗?
使用文档
连个使用文档都不提供的是吗 ??
初始化切片上传出错
var initUploadRequest = new InitiateMultipartUploadRequest();
var initUploadResult = _ossClient.InitiateMultipartUpload(_aliyunOssConfig.PictureBucketName, key, initUploadRequest);
返回:Tea.TeaException: The request signature we calculated does not match the signature you provided. Check your key and signing method.
一样的client调用PutObjectAsync上传成功
本项目与aliyun-openapi-net-sdk应如何选择?
本项目和aliyun-openapi-net-sdk应该如何选择
AlibabaCloud.SDK.EHPC20180412 v1.14.21 , 没有SubmitServerlessJob API
AlibabaCloud.SDK.EHPC20180412 v1.14.21 , 没有SubmitServerlessJob API
AlibabaCloud.SDK.Oss20190517 仍然无法使用
根据 #7 的说法,该问题已经修复了,但是,又有新的问题了。
调用方法如下:
using Oss = AlibabaCloud.SDK.Oss20190517;
var ossCfg = new Config
{
AccessKeyId = <Key>,
AccessKeySecret = <Secret>,
Endpoint = "oss-cn-hangzhou.aliyuncs.com"
};
var cli = new Oss.Client(ossCfg);
var req = new Oss.Models.ListBucketsRequest
{
MaxKeys = 500
};
try
{
// var result = await cli.ListBucketsAsync(req);
var result = await cli.ListBucketsWithOptionsAsync(req, new Dictionary<string, string>(), new RuntimeOptions());
if (result == null || result.Body == null || result.Body.Buckets == null ||
result.Body.Buckets.Buckets == null || result.Body.Buckets.Buckets.Count == 0)
{
return new(code: 400, msg: "暂无 Bucket");
}
return new(result.Body.Buckets.Buckets, result.Body.Buckets.Buckets.Count);
}
catch (TeaException e)
{
return new(code: 500, msg: Common.AssertAsString(e.Message));
}
catch (Exception e)
{
var ex = new TeaException(new Dictionary<string, string>
{
{ "message", e.Message }
});
return new(code: 500, msg: Common.AssertAsString(ex.Message));
}
抛出异常如图所示:
另外,不知道阿里云对于 .NET Core 的 SDK,有没有暂停的计划,如果要暂停了,麻烦告知一下,不然,对于官方 SDK,出现这样的 BUG,感觉有点匪夷所思。
CopyObject方法不能跨Bucket
在尝试从Aliyun.OSS.SDK.NetCore 迁移到此SDK版本的过程中发现方法少跨Bucket复制的功能,而且参数定义有一定的迷惑性,Copy方法应该给出源和目标的参数的,现在只看到一个Bucket和Key的参数,并不清楚其中的定义如何。
AlibabaCloud.SDK.Oss20190517 不能使用吗?
对于 OSS 的操作,现在使用的是 Aliyun.OSS.SDK.NetCore
,偶然看到还有一个 AlibabaCloud.SDK.Oss20190517
的 SDK。
添加到项目内,调用方法 ListBucketsAsync(req)
,抛出异常:The method or operation is not implemented
。
请问,这个 SDK AlibabaCloud.SDK.Oss20190517
还没有实现完毕吗?
OSS SDK调用`GetObjectMetaAsync`异常
传入相同的bucket和key,若key存在——
HeadObjectAsync
请求成功;
GetObjectMetaAsync
抛出xml异常:
System.Xml.XmlException: Root element is missing.
at AlibabaCloud.OpenApiClient.Client.ExecuteAsync(Params params_, OpenApiRequest request, RuntimeOptions runtime)
at AlibabaCloud.SDK.Oss20190517.Client.GetObjectMetaWithOptionsAsync(String bucket, String key, GetObjectMetaRequest request, Dictionary`2 headers, RuntimeOptions runtime)
at AlibabaCloud.SDK.Oss20190517.Client.GetObjectMetaAsync(String bucket, String key, GetObjectMetaRequest request)
若key不存在,则均抛出上述异常。
看文档这两个API含义相似,只是后者似乎返回的内容更少。
我的原始需求是想确认bucket里是否存在指定路径和名称的文件,新SDK里似乎没有提供直接的API。
AlibabaCloud.SDK.Oss20190517 问题简单汇总
由于在阿里云的 SDK 文档中,没有 C# 升级版的示例代码,只能摸索着测试,在目前用到的功能,碰到的异常和问题,罗列出来:
异常
-
GetObjectWithOptionsAsync
报 #10 的异常:Object must implement IConvertible.
(在调用CopyObjectWithOptionsAsync
之前,调用了获取文件的方法,由于报异常,所以没有对复制文件的方法进行测试) -
DeleteMultipleObjectsWithOptionsAsync
异常:unsupported nest list.
-
GetObjectTaggingWithOptionsAsync
异常:The request signature we calculated does not match the signature you provided. Check your key and signing method.
(其他 Object 的方法都能正常访问,这个方法,提示签名算法异常)
其他
-
原 SDK 的
OssObjectSummary
中,含有BucketName
这个属性,在新 SDK 的Models.ObjectSummary
中,不再含有该属性,而是在ListObjectsV2ResponseBody
中统一用Name
。请问,是否确定移除Models.ObjectSummary
中的BucketName
属性? -
ListObjectsV2WithOptionsAsync
请求/返回中的StartAfter
,请问,该属性,是否是原 SDK 中的NextMarker
?- 如果是,在调用
ListObjectsV2WithOptionsAsync
之后,StartAfter
返回值为null
(已确定Bucket
中的文件数量大于Models.ListObjectsV2Request
中的MaxKeys
) - 如果不是,那怎么对
Bucket
中的文件进行分页?
- 如果是,在调用
-
除了个别属性不同,请问,
ListObjects
和ListObjectsV2
还有什么区别吗?看文档,建议使用 V2,意思是,后续ListObjects
会删除吗?- 如果要删除,建议将
ListObjects
标记为已过时,并提示将在 xxx 版本删除。 - 如果不删除,请说明一下两个方法的区别和使用场景。
- 如果要删除,建议将
-
CopyObjectWithOptionsAsync
方法的前两个参数,是拷贝时的目的 Bucket 和 Key 吧?如果是,建议调整参数名(类似:DestBucket 之类的),这样更直观。
总的来说,升级版和旧版,有一些属性上的差异,我觉得是正常的,不过,感觉升级版的 SDK 待完善的地方还有很多,我这里只是我在项目里用到的方法的一个汇总。
[BUG] OSS SDK存在Content-Type强制覆盖导致用户设置无效
起因
在通过自定义域名访问OSS部分文件时,希望可以直接在浏览器中预览而非触发下载操作。
按照官方文档《通过文件URL访问图片无法预览而是以附件形式下载?》的说法,只需要设置Content-Disposition为inline
即可。
但通过新版SDK上传图片、音频等文件后,通过浏览器访问地址仍始终触发浏览器下载操作。而旧版本SDK上传后,操作结果符合预期。
调查结果
在旧SDK中,会根据文件扩展名来决定Content-Type,如png图片文件是image/png
。
而在新版SDK中,则直接在AlibabaCloud.OpenApiClient.Client请求前将headers["content-type"]
强制覆盖成了application/octet-stream
。在OSS Browser客户端查看文件时,其HTTP头如下:
将Content-Type改成image/png
后,访问图片地址成功显示预览而非触发下载。
这应该是一个Bug,希望能尽快修复!@yndu13
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.