を持っていない私は、Webアプリケーションからのサンプル.txtファイルでSDKを使用してAWSにアップロードする方法をテストしています。ファイルはバケットにアップロードされますが、バケットからダウンロードされたファイルは元のアップロードファイルのテキストがない空のメモ帳ドキュメントです。私はストリームで作業することに新しいので、ここで何が間違っているのかは分かりません。転送要求でデータが送信されない理由は誰にも見えますか?前もって感謝します!HttpPostedFileBase AWS SDKバケットにストリームのアップロードがデータ
using (var client = new AmazonS3Client(Amazon.RegionEndpoint.USWest1))
{
//Save File to Bucket
using (FileStream txtFileStream = (FileStream)UploadedHttpFileBase.InputStream)
{
try
{
TransferUtility fileTransferUtility = new TransferUtility();
fileTransferUtility.Upload(txtFileStream, bucketLocation,
UploadedHttpFileBase.FileName);
}
catch (Exception e)
{
e.Message.ToString();
}
}
}
EDIT:
TransferUtilityとPutObjectRequest/PutObjectResponse/AmazonS3Client.PutObjectの両方が空のテキストファイルを保存しました。その後、新しいFileStreamのインスタンス化に問題が発生した後、開始位置をゼロにリセットした後に使用されるMemoryStreamは空のテキストファイルを保存しました。何か案は?
新しいコード:
using (var client = new AmazonS3Client(Amazon.RegionEndpoint.USWest1))
{
Stream saveableStream = new MemoryStream();
using (Stream source = (Stream)UploadedHttpFileBase.InputStream)
{
source.Position = 0;
source.CopyTo(saveableStream);
}
//Save File to Bucket
try
{
PutObjectRequest request = new PutObjectRequest
{
BucketName = bucketLocation,
Key = UploadedHttpFileBase.FileName,
InputStream = saveableStream
};
PutObjectResponse response = client.PutObject(request);
}
catch (Exception e)
{
e.Message.ToString();
}
}
答えをくれてありがとう、アンドレイ。 TransferUtilityとPutObjectRequest/PutObjectResponse/AmazonS3Client.PutObjectの両方を使用し、両方とも空のテキストファイルを保存しました。 MemoryStreamを使用せずに入力ストリームを非一時ファイルにコピーするにはどうすればよいですか? – jle
私はMemoryStreamを使用していますが、その場合に備えて開始位置を0にリセットしましたが、空のファイルはまだ保存されています。何か案は? – jle