0
のサイズを考え出す私は現在、以下のようにAmazonのS3ストレージを使用して、入力ストリームを取得しています:のInputStream
public static InputStream getResourceAsStream(String fileKey) {
AmazonS3 s3Client = new AmazonS3Client(new ProfileCredentialsProvider());
return s3Client.getObject(new GetObjectRequest(bucketName, fileKey)).getObjectContent();
}
私が扱ってるファイルは.MP4動画です。私は、Range-Requestsを使ってビデオをストリーミングして、エンドユーザの早送りと巻戻しを可能にしようとしています。通常のFile
オブジェクトを使用していたときにストリーミングが正常に機能していましたが、ローカルマシンに保存されているファイルを使用する代わりにAmazon S3からストリーミングを受信しています。
このストリームの長さを調べるにはどうすればよいですか?前に、私はこれでした:
Long length = Files.size(filepath);
をしかし、私はJavaコードを実行しているマシン上で直接保存されたファイルを持っていないようになりましたこれは動作しません。 InputStream
の長さを調べる方法はありますか?
号は 'InputStream'はバイトのストリームで、大きさを知るための唯一の方法は、これ以上のバイトが返されなくなるまで読むことです。 – Kayaman
@ Kayamanだから私は 'InputStream'を読んで、バイトが返されるまでバイト配列にバイトを格納し、バイト配列のサイズをチェックする必要がありますか? –
通常はありません。信じられないほどの量の記憶が残っているので、通常はその周りにデザインする必要があります。 – Kayaman