开发者社区> 问答> 正文

PutObject大文件(20m)net报错无法访问已关闭的文件

PutObject 大文件(20m ) .net 报错 无法访问已关闭的文件


求助。。。。



   在 System.IO.__Error.FileNotOpen()
   在 System.IO.FileStream.Seek(Int64 offset, SeekOrigin origin)
   在 Aliyun.OpenServices.Common.Communication.RetryableServiceClient.SendImpl(ServiceRequest request, ExecutionContext context, Int32 retries) 位置 d:\workspace\openapi\trunk\dotnet\aliyunapi\Common\Communication\RetryableServiceClient.cs:行号 73
   在 Aliyun.OpenServices.Common.Communication.RetryableServiceClient.Send(ServiceRequest request, ExecutionContext context) 位置 d:\workspace\openapi\trunk\dotnet\aliyunapi\Common\Communication\RetryableServiceClient.cs:行号 54
   在 Aliyun.OpenServices.OpenStorageService.Commands.OssCommand.Execute() 位置 d:\workspace\openapi\trunk\dotnet\aliyunapi\OpenStorageService\Commands\OssCommand.cs:行号 72
   在 Aliyun.OpenServices.OpenStorageService.Commands.OssCommand`1.Execute() 位置 d:\workspace\openapi\trunk\dotnet\aliyunapi\OpenStorageService\Commands\OssCommand.cs:行号 116
   在 Aliyun.OpenServices.OpenStorageService.OssClient.PutObject(String bucketName, String key, Stream content, ObjectMetadata metadata) 位置 d:\workspace\openapi\trunk\dotnet\aliyunapi\OpenStorageService\OssClient.cs:行号 191
   在 Wudu.FiveMarketing.Test.Program.Main(String[] args) 位置 D:\Work\Wudu\Projects\FiveMarketing2013\Wudu.FiveMarketing.Test\Program.cs:行号 25
   在 System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
   在 System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
   在 Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
   在 System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   在 System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   在 System.Threading.ThreadHelper.ThreadStart()

展开
收起
clz 2013-06-25 00:26:00 9586 0
3 条回答
写回答
取消 提交回答
  • 感谢楼主向我们反馈的问题。

    经技术排查~~
    这个错误是SDK重试机制造成的,我们会在下一版中fix这个bug。SDK更新信息会在论坛中发布。还请介时关注。

    原因分析:造成PutObject重试的真正原因在于操作超时,由于您的文件太大,导致默认超时时间小于文件上传的时间,所以出现上述错误。

    以当前SDK版本~~我们建议您做以下选择:

    1 在ClientConfiguration中将ConnectionTimeout设置的尽量大,或者为-1(永远不超时),保证有足够的时间把文件上传到服务器。

    2 使用分块上传( Multipart Upload的操作  相关说明在API文档5.5章节,SDK也有相关接口封装),只要每个块的上传时间小于ConnectionTimeout即可。
    2013-06-26 10:39:50
    赞同 展开评论 打赏
  • RePutObject大文件(20m)net报错无法访问已关闭的文件
    linux php从没遇到此问题的路过~~~
    2013-06-25 09:07:09
    赞同 展开评论 打赏
  • clz
    RePutObject大文件(20m)net报错无法访问已关闭的文件
    小文件可以正常调用PutObject
    大文件才会报错。。。
    2013-06-25 00:26:59
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载