Amazon.S3.IO S3目录信息



可能的重复:
如何将大于5 MB(大约)的文件上传到Amazon S3(官方SDK)?

我尝试使用Amazon.S3.IO API。如果我写10mb就没有问题。如果我写21mb,我会得到一个异常:

请求已中止:请求已取消。

StackTRace:
位于System.Net.ConnectStream.CloseInternal(布尔内部调用,布尔中止)在System.Net.ConnectStream.System.Net.ICloseEx.CloseEx(CloseExState closeState)位于System.Net.ConnectStream.Dispose(布尔处理)在System.IO.Stream.Close()位于System.IO.Stream.Dispose()在Amazon.S3.AmazonS3Client.getRequestStreamCallback[T](IAsyncResult结果)在Amazon.S3.AmazonS3Client.endOperation[T](IAsyncResult结果)在Amazon.S3.AmazonS3Client.EndPutObject(IAsyncResult-asyncResult)在Amazon.S3.AmazonS3Client.PutObject(PutObjectRequest请求)Amazon.S3.IO.S3FileStream.Flush(布尔flushToS3)在Amazon.S3.IO.S3FileStream.Dispose(布尔处理)在System.IO.Stream.Close()位于System.IO.StreamWriter.Dispose(布尔处理)位于System.IO.TextWriter.Dispose()在c:\Program Files(x86)\AWS SDK for.NET\Samples\S3FileSystem_Sample\S3FileSystem_Ssample\Program.cs:line 106中的S3FileSystem_Sample.Program.createFile(S3DirectoryInfo rootDirectory,字符串文件名)位于c:\Program Files(x86)\AWS SDK for.NET\Samples\S3FileSystem_Sample\S3FileSystem_SSample\Program.cs:line 59位于System.AppDomain_nExecuteAssembly(RuntimeAssembly程序集,String[]参数)位于System.AppDomain.ExecuteAssembly(String assemblyFile,Evidence assemblySecurity,String[]args)位于Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()位于System.Threading.ThreadHelper.ThreadStart_Context(对象状态)位于System.Threading.ExecutionContext.RunInternal(ExecutionContext ExecutionContext,ContextCallback回调,对象状态,布尔值preserveSyncCtx)在System.Threading.ExecutionContext.Run(ExecutionContext ExecutionContext,ContextCallback回调,Object state,Boolean preserveSyncCtx)在System.Threading.ExecutionContext.Run(ExecutionContext ExecutionContext,ContextCallback回调,对象状态)位于System.Threading.ThreadHelper.ThreadStart()

static void createFile(S3DirectoryInfo rootDirectory, string filename)
{ 
// Creates a file at the root of the bucket.
S3FileInfo readme = rootDirectory.GetFile(filename);
char[] buffer = new char[buffersize];  
fillBuffer(buffer);
using (StreamWriter writer = new StreamWriter(readme.OpenWrite()))
{              
writer.Write(buffer);
}
}

你知道我可以设置超时吗?

单击此处和此处了解更多相关问题。

遗憾的是,Amazon.S3.IO API不支持设置超时,但作为SDK上的开发人员,我将把该功能请求添加到我们的积压工作中。

请记住,Amazon.S3.IO API是一个非常容易使用S3的接口,但它不太适合大型文件,因为它会将文件缓冲到内存中,直到您将文件的全部内容传递给API,然后它将其写入S3。对于大文件,您应该使用Amazon.S3.Transfer命名空间中的TransferUtility。

相关内容

  • 没有找到相关文章

最新更新