1

重複の可能性:
5 MB(約)を超えるファイルをAmazon S3(公式SDK)にアップロードするにはどうすればよいですか?

Amazon.S3.IOAPIを使おうとしています。10mbと書けば問題ありません。21mbと書くと、例外が発生します。

リクエストは中止されました:リクエストはキャンセルされました。

スタックトレース:
System.Net.ConnectStream.CloseInternal(Boolean internalCall、Boolean aborting)at System.Net.ConnectStream.System.Net.ICloseEx.CloseEx(CloseExState closeState)at System.Net.ConnectStream.Dispose(Boolean disposed)atSystem.IO。 Stream.Close()at System.IO.Stream.Dispose()at Amazon.S3.AmazonS3Client.getRequestStreamCallback [T](IAsyncResult result)at Amazon.S3.AmazonS3Client.endOperation [T](IAsyncResult result)atAmazon.S3。 Amazon.S3のAmazonS3Client.EndPutObject(IAsyncResult asyncResult)。システムのAmazon.S3.IO.S3FileStream.Dispose(ブール処理)のAmazon.S3.IO.S3FileStream.Flush(ブールflushToS3)のAmazonS3Client.PutObject(PutObjectRequestリクエスト)。 S3FileSystem_Sample.ProgramのSystem.IO.TextWriter.Dispose()のSystem.IO.StreamWriter.Dispose(ブール処理)のIO.Stream.Close()。createFile(S3DirectoryInfo rootDirectory、String filename)in c:\ Program Files(x86)\ AWS SDK for .NET \ Samples \ S3FileSystem_Sample \ S3FileSystem_Sample \ Program.cs:line 106 at S3FileSystem_Sample.Program.Main(String [] args)in c :\ Program Files(x86)\ AWS SDK for .NET \ Samples \ S3FileSystem_Sample \ S3FileSystem_Sample \ Program.cs:line 59 at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly、String [] args)at System.AppDomain.ExecuteAssembly(String assemblyFile 、Evidence assemblySecurity、String [] args)at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()at System.Threading.ThreadHelper.ThreadStart_Context(Object state)at System.Threading.ExecutionContext.RunInternal(ExecutionContext executeContext、ContextCallback callback、Object state 、System.Threading.ExecutionContextのブールpreserveSyncCtx)。System.Threading.ExecutionContext.Run(ExecutionContextexecutionContext、ContextCallbackコールバック、オブジェクト状態)でSystem.Threading.ThreadHelper.ThreadStart()でRun(ExecutionContextexecutionContext、ContextCallbackコールバック、オブジェクト状態、ブールpreserveSyncCtx)

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);

    }
}

タイムアウトを設定できるアイデアはありますか?

関連する質問については、ここをクリックしてください

4

1 に答える 1

4

残念ながら、Amazon.S3.IO APIはタイムアウトの設定をサポートしていませんが、SDKの開発者として、その機能リクエストをバックログに追加します。

Amazon.S3.IO APIはS3を操作するのに非常に簡単なインターフェースですが、ファイルの内容全体をAPIに渡してからAPIに渡すまで、大きなファイルをメモリにバッファリングするため、大きなファイルにはあま​​り適していません。 S3に書き込みます。大きなファイルの場合は、Amazon.S3.Transfer名前空間にあるTransferUtilityを使用する必要があります。

于 2012-11-13T22:21:21.563 に答える