Я пытаюсь выполнить запрос HTTP PUT для URL-адреса s3, используя HttpURLConnection.Но почему-то setFixedLengthStreamingMode у меня не работает.Может кто-нибудь помочь?
HttpURLConnection connection = (HttpURLConnection) new URL(uploadLocation).openConnection();
connection.setRequestProperty("x-amz-server-side-encryption", CommonConstants.AMZ_SERVER_SIDE_ENCRYPTION);
connection.setDoOutput(true);
connection.setRequestMethod("PUT");
connection.setFixedLengthStreamingMode((int) new File(localFilePath).length());
Последнее утверждение ничего не делает.Если я делаю connection.getContentLength()
, это показывает -1.Может кто-нибудь помочь?
edit: Я на самом деле пытаюсь это сделать, но это не работает.получение исключения java io: поток закрыт.
BufferedOutputStream out = new BufferedOutputStream(connection.getOutputStream());
FileInputStream input = new FileInputStream(localFilePath);
int length;
while ((length = input.read(buffer)) > 0) {
out.write(buffer, 0, length);
}
input.close();
out.close();