Как загрузить большие PDF-файлы (> 1 ГБ) в SharePoint с помощью REST API в Java?JAVA

Программисты JAVA общаются здесь
Anonymous
Как загрузить большие PDF-файлы (> 1 ГБ) в SharePoint с помощью REST API в Java?

Сообщение Anonymous »

Я пытался загрузить большие PDF-файлы с помощью Rest API SharePoint на Java, но мне не удалось этого сделать.
Цель — загрузить большой файл частями, чтобы не возникало таймаута сеанса проблема.
Я пытался загрузить файл по этому URL частями:
https://abc.xyz.com/sites/abc-sharepoint-site/_api/ web/GetFolderById('45dfdf-5f22-df43-82e8-64dfd457a4848')/Files/add(url='2024-09-17-result%201726548758704.pdf',overwrite=true)
Для получения дополнительной информации ознакомьтесь с этой документацией: https://learn.microsoft.com/en-us/share ... ointString uploadUrl = "https://abc.xyz.com/sites/abc-sharepoin ... rite=true)";

public void uploadChunk(String uploadUrl, File file, String token) throws Exception {
FileInputStream fileInputStream = new FileInputStream(file);
byte[] buffer = new byte[50 * 1024 * 1024];
int bytesRead;
int chunkNumber = 0;

long totalBytes = file.length();
long uploadedBytes = 0;

while ((bytesRead = fileInputStream.read(buffer)) != -1) {
long start = uploadedBytes;
long end = start + bytesRead - 1;

URL url = new URL(uploadUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("Authorization", "Bearer " + token);
connection.setRequestProperty("Content-Range", "bytes " + start + "-" + end + "/" + totalBytes);
connection.setRequestProperty("Content-Length", String.valueOf(bytesRead));
connection.setRequestProperty("Content-Type", "application/json;odata=verbose"); // Binary data
connection.setRequestProperty("Accept", "application/json;odata=verbose");

connection.setRequestProperty("X-HTTP-Method", "MERGE");
connection.setDoOutput(true);

OutputStream outputStream = connection.getOutputStream();
outputStream.write(buffer);
outputStream.flush();
outputStream.close();

int responseCode = connection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == 202) {
System.out.println("Chunk " + chunkNumber + " uploaded successfully.");
chunkNumber++;
uploadedBytes += bytesRead;
} else {
throw new Exception("Failed to upload chunk " + chunkNumber + ", response code: " + responseCode);
}
}

fileInputStream.close();
}


Подробнее здесь: https://stackoverflow.com/questions/789 ... pi-in-java

Вернуться в «JAVA»