AWS SDK for .NET 1.5.9.0を使用していますが、
var putObjectRequest = new PutObjectRequest
{
BucketName = bucketName,
Key = key,
FilePath = filePath,
CannedACL = S3CannedACL.PublicRead
};
try
{
using (var pubtObjectResponse = client.PutObject(putObjectRequest))
{
Logger.Application.DebugFormat("uploaded {0} to {1} on bucket {2}, got id {3}", filePath, remotePath, bucketName, pubtObjectResponse.AmazonId2);
}
}
catch (Exception ex)
{
Logger.Application.Fatal(string.Format("could not upload {0} to {1} on bucket {2}", filePath, remotePath, bucketName), ex);
}
のため
System.Net.WebException: 要求は中止されました: 要求はキャンセルされました。--->
System.IO.IOException: すべてのバイトが書き込まれるまでストリームを閉じることができません。
System.Net.ConnectStream.CloseInternal(Boolean internalCall, Boolean aborting)
--- 内部例外スタック トレースの終わり ---
System.Net.ConnectStream.CloseInternal(Boolean internalCall, Boolean aborting)
at System.Net.ConnectStream.System .Net.ICloseEx.CloseEx(CloseExState closeState)
で System.Net.ConnectStream.Dispose(Boolean disposing)
で System.IO.Stream.Close()
で Amazon.S3.AmazonS3Client.getRequestStreamCallback[T](IAsyncResult result)
で Amazon. S3.AmazonS3Client.endOperation[T](IAsyncResult結果)
Amazon.S3.AmazonS3Client.EndPutObject (IAsyncResult asyncResult) で
への提案によって
var transferUtilityUploadRequest = new TransferUtilityUploadRequest()
.WithBucketName(bucketName)
.WithKey(key)
.WithFilePath(filePath)
.WithCannedACL(S3CannedACL.PublicRead);
try
{
transferUtility.Upload(transferUtilityUploadRequest);
// how do I get success-state in here?
// how do I get AmazonId2 in here?
}
catch (Exception ex)
{
Logger.Application.Fatal(string.Format("could not upload {0} to {1} on bucket {2}", filePath, remotePath, bucketName), ex);
}
私がやろうとしていることは明らかですが、必要な情報にアクセスするにはどうすればよいでしょうか? 誰かが私を正しい方向に向けることができますか?