集成到unity后上传文件pc正常,ios和android一直回调CosClientException
xophiix opened this issue · comments
xophiix commented
就是按照示例代码
var request = new PutObjectRequest(bucket, key, data);
//设置签名有效时长
request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
//设置进度回调
request.SetCosProgressCallback(delegate(long completed, long total)
{
Console.WriteLine($"upload {key} to cos progress = {completed * 100.0 / total:##.##}%");
});
//执行请求
_cosXml.PutObject(request,
(cosResult) =>
{
//请求成功
var result = cosResult as PutObjectResult;
Console.WriteLine(result.GetResultInfo());
callback(null);
},
delegate(COSXML.CosException.CosClientException clientEx, COSXML.CosException.CosServerException serverEx)
{
//请求失败
if (clientEx != null)
{
Console.WriteLine("CosClientException: " + clientEx.Message);
callback(clientEx.Message);
}
else if (serverEx != null)
{
Console.WriteLine("CosServerException: " + serverEx.GetInfo());
callback(serverEx.GetInfo());
}
});
并且奇怪的是
CosClientException的Message为Success
xophiix commented
经查明是Process.ProcessName调用抛的异常,应该是unity的mono版本没正确实现这个函数。只好先绕过了
COSXML.CosException.CosClientException: Success ---> System.ComponentModel.Win32Exception: Success
at System.Diagnostics.Process.GetProcessHandle (System.Int32 access, System.Boolean throwIfExited) [0x00000] in <00000000000000000000000000000000>:0
at System.Diagnostics.Process.get_ProcessName () [0x00000] in <00000000000000000000000000000000>:0
at COSXML.Log.QLog.Print (COSXML.Log.LEVEL level, System.String tag, System.String message, System.Exception exception) [0x00000] in <00000000000000000000000000000000>:0
at COSXML.Log.QLog.D (System.String tag, System.String message, System.Exception exception) [0x00000] in <00000000000000000000000000000000>:0
at COSXML.Log.QLog.D (System.String tag, System.String message) [0x00000] in <00000000000000000000000000000000>:0
at COSXML.Network.CommandTask+HttpHeaderHandle.AddHeader (System.Net.WebHeaderCollection webHeaderCollection, System.String key, System.String value) [0x00000] in <00000000000000000000000000000000>:0
at COSXML.Network.CommandTask.HandleHttpWebRequestHeaders (COSXML.Network.Request request, System.Net.HttpWebRequest httpWebRequest, COSXML.Network.HttpClientConfig config) [0x00000] in <00000000000000000000000000000000>:0
at COSXML.Network.CommandTask.Schedue (COSXML.Network.Request request, COSXML.Network.Response response, COSXML.Network.HttpClientConfig config) [0x00000] in <00000000000000000000000000000000>:0
at COSXML.Network.HttpClient.InternalSchedue (COSXML.Model.CosRequest cosRequest, COSXML.Model.CosResult cosResult, COSXML.Callback.OnSuccessCallback`1[T] successCallback, COSXML.Callback.OnFailedCallback failCallback) [0x00000] in <00000000000000000000000000000000>:0
at COSXML.Network.HttpClient.Schedue (COSXML.Model.CosRequest cosRequest, COSXML.Model.CosResult cosResult, COSXML.Callback.OnSuccessCallback`1[T] successCallback, COSXML.Callback.OnFailedCallback failCallback) [0x00000] in <00000000000000000000000000000000>:0
at COSXML.CosXmlServer.schedue (COSXML.Model.CosRequest request, COSXML.Model.CosResult result, COSXML.Callback.OnSuccessCallback`1[T] successCallback, COSXML.Callback.OnFailedCallback failCallback) [0x00000] in <00000000000000000000000000000000>:0
at COSXML.CosXmlServer.PutObject (COSXML.Model.Object.PutObjectRequest request, COSXML.Callback.OnSuccessCallback`1[T] successCallback, COSXML.Callback.OnFailedCallback failCallback) [0x00000] in <00000000000000000000000000000000>:0