今検索したストリームを再アップロードしようとしています。私がAWSを使用していることは本当に重要ではないはずです...私の考えは...ストリームでの作業についての私の理解は、あまりにも限られていますか? :-)2つのAWSバケット間のコピー - AWSから返されたストリーム:HashStreamはシークをサポートしていません
私はストレート AWS documentationからのストリームをダウンロードしてアップロードするには、以下の方法を使用しています:
ファイルアップロード:
public Stream GetFile(string keyName)
{
using (client = new AmazonS3Client(Amazon.RegionEndpoint.USEast2))
{
try
{
GetObjectRequest request = new GetObjectRequest
{
BucketName = bucketName,
Key = keyName
};
GetObjectResponse response = client.GetObject(request);
responseStream = response.ResponseStream;
return responseStream;
}
catch (AmazonS3Exception amazonS3Exception)
{
[...]
}
}
}
:
public bool UploadFile(string keyName, Stream stream)
{
using (client = new AmazonS3Client(Amazon.RegionEndpoint.USEast1))
{
try
{
TransferUtility fileTransferUtility = new TransferUtility(new AmazonS3Client(Amazon.RegionEndpoint.USEast1));
fileTransferUtility.Upload(stream, bucketName, keyName);
return true;
}
catch (AmazonS3Exception amazonS3Exception)
{
[...]
}
}
}
は、ファイルの取得
今、私は2つの方法を組み合わせようとしています:私は、すぐにもう一度アップロードしたいと思っています。しかし、次のエラーメッセージが表示されています:System.NotSupportedException : HashStream does not support seeking
私はそれが何かを持っていると推測していますが、何とか今すぐすぐに再びアップロードする準備ができていますか?
これは私が既存のファイル(.JPG)のストリームを取得し、すぐに別のファイル名でそれをアップロードしようとしようとしています方法です:
newAWSとoldAWSは、AWSクラスのインスタンスであるnewAWS.UploadFile(newFileName, oldAWS.GetFile(oldFile));
、newFileNameは文字列です:-) これは、上記のエラーメッセージが貼り付けられている行です。
なぜ私はフェッチされたストリームを再アップロードできないのかわかりません。それとも、それが私が気づいていない何かに関連していて、返されたストリームのトラブルシューティングを間違ったトラックにしている可能性がありますか?
私が基本的にしようとしているのは、ストリームを使用してAWSバケットから別のファイルにファイルをコピーすることです。しかし何らかの理由で、私がダウンロードしたばかりのストリームをアップロードしようとしているというエラーメッセージが表示されます。
はあなたに私のアプローチは動作しませんし、私はそれがない理由は本当にわからないことのように見えます