しかし、問題は疑わしいです。 JARからサーバーに画像をアップロードしています。おおよその時間アップロードファイルを計算する
long startTime = System.currentTimeMillis();
long stopTime = System.currentTimeMillis();
long elapsedTime = stopTime - startTime;
System.out.println("TIME ::: " + (float)(elapsedTime/1000) + " seg");
は、今私はおおよその立ち上がり時間を得ることについて考えていた:私は次のように、それはすべてのサーバーを登るためにかかった時間を計算するコードを持っていました。このJARは、非常に良い品質の写真と遅延時間が延長されているので、私はユーザーのための追加情報としてしかやりたくありません。私は最初の画像を思い浮かべて、その画像をアップロードするためにどれくらいかかり、その値にユーザーが選択したフォルダにある画像の合計値を掛けたものを計算することができます。それは有効と思われますが、何らかの形で若干正確なものがあれば、どういうわけかJavaやそれに類似したものが統合されていれば、あなたに来たいと思っていました。
今、私は自分のサーバーに、このように画像をアップロードする:
public boolean uploadWithThumb(File image, String filename) {
reconnect();
try {
_sftp.cd(Config.Config.IMAGES_FOLDER);
_sftp.put(new FileInputStream(image), filename, ChannelSftp.OVERWRITE); //no overwrite (, ChannelSftp.OVERWRITE)
OutputStream output = new ByteArrayOutputStream();
//preview
if (Config.Config.WATERMARK_FILE == "" || !(new File(Config.Config.WATERMARK_FILE)).exists()) {
//no watermark
Thumbnails.of(image)
.size(Config.Config.PREVIEW_SIZE, Config.Config.PREVIEW_SIZE)
.outputQuality(Config.Config.PREVIEW_QUALITY)
.toOutputStream(output);
} else {
BufferedImage prev = Thumbnails.of(image)
.size(Config.Config.PREVIEW_SIZE, Config.Config.PREVIEW_SIZE)
.outputQuality(Config.Config.PREVIEW_QUALITY)
.asBufferedImage();
int wsize = Config.Config.PREVIEW_SIZE * 75/100;
BufferedImage water = Thumbnails.of(Config.Config.WATERMARK_FILE)
.size(wsize, wsize)
.asBufferedImage();
Thumbnails.of(prev)
.size(Config.Config.PREVIEW_SIZE, Config.Config.PREVIEW_SIZE)
.watermark(Positions.CENTER, water, 0.5f)
.outputFormat(Utils.getExtensionNoDot(image.getAbsolutePath()))
.toOutputStream(output);
}
InputStream decodedInput = new ByteArrayInputStream(((ByteArrayOutputStream) output).toByteArray());
_sftp.cd(Config.Config.PREVIEW_FOLDER);
_sftp.put(decodedInput, filename, ChannelSftp.OVERWRITE); //no overwrite (, ChannelSftp.OVERWRITE)
//thumbs
output = new ByteArrayOutputStream();
Thumbnails.of(image)
.size(Config.Config.THUMBS_SIZE, Config.Config.THUMBS_SIZE)
.toOutputStream(output);
decodedInput = new ByteArrayInputStream(((ByteArrayOutputStream) output).toByteArray());
_sftp.cd(Config.Config.THUMBS_FOLDER);
_sftp.put(decodedInput, filename, ChannelSftp.OVERWRITE); //no overwrite (, ChannelSftp.OVERWRITE)
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
}
こんにちは!ありがとう!あなたのコードにお返事いただきありがとうございますが、50秒かかるうちに約226秒かかります。私はfile.length()でファイルサイズを取得しています – hateful
アップロードの速度はネットワークの使用量と、送受信のウィンドウを変えるTCP/IPのようなプロトコルとの相対的なものです。より正確な推定を行うには、同じコードを使用して速度を定期的に再計算することができます。 –