次のコードを使用して、s3バケットのオブジェクトからコンテンツを取得しています。私はローカルにファイルにデータをコピーすることができますが、ファイルは「ダウンロード」する必要があり、ブラウザのダウンロードリストに表示する必要があります。 私はこれについて少し調べて、これと何か関係があることを知っているカムresponse.setHeader("Content-Disposition", "attachment;filename=\"" + filename + "\"");
私はそれも追加しようとしましたが、何とかそれを働かせることができませんでした。私の理解は、ソースはストリームに変換されるサーバー上のファイルでなければならないということです。私はs3の内容を入力ストリームの形で取得します。どのように私はブラウザでファイルとしてこれをダウンロードするには? 以下は、ファイルの読み取り部分を除くjava - サーブレットを使用して入力ストリームをダウンロードする
AmazonS3 s3 = new AmazonS3Client(new ProfileCredentialsProvider());
S3Object fetchFile = s3.getObject(new GetObjectRequest(bucketname, fileloc));
final BufferedInputStream i = new BufferedInputStream(fetchFile.getObjectContent());
response.setContentType("application/json");
response.setHeader("Content-Disposition", "attachment;filename=\"" + filename + "\"");
ServletOutputStream sos = response.getOutputStream();
int bytesread = i.read();
while(bytesread!=-1)
{
sos.write(bytesread);
bytesread = i.read();
}
if(i!= null)i.close();
if(sos!= null)sos.close();
こんにちは、ありがとう!でもこれは何の違いもなく、例外もありませんでした – lavy
こんにちは、他の洞察をお願いしますか?私はまだこの1つにこだわっています:( – lavy