411/412 error while using tus-java-client
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 35/100
Rechercherichtung
Start with TusClient.createUpload at the stack trace location and compare the creation request headers with the tus protocol and the working tus-js request. Check whether the headers added to the map after client.setHeaders are included in the request, and inspect the tusdotnet response for the 412 cause. Done means identifying the cause and confirming upload creation succeeds with the Java client.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Question
We have a tusdotnet server and tus-js which is working perfectly fine. We are planning to add a tus-java-client as well for our product and have developed a simple java application to test the tus-java-client but, I'm consistently receiving 411 error. after looking at this article and followed the instructions and now I'm receiving 412 error. I'm not sure what headers I'm missing because I'm using the same headers from tus-js. Any help is appreciated
Thanks
Setup details
Please provide following details, if applicable to your situation:
- Runtime environment: [OpenJDK 23.0.1]
- Used tus-java-client version: [0.5.0]
- Used tus server software: [tusdotnet]
package com.example;
import io.tus.java.client.TusClient;
import io.tus.java.client.TusUpload;
import io.tus.java.client.TusUploader;
import org.apache.log4j.Logger;
import java.io.File;
import java.net.URL;
import java.util.Base64;
import java.util.HashMap;
import java.util.Map;
public class App {
static final Logger logger = Logger.getLogger(App.class);
public static void main(String[] args) {
try {
System.setProperty("sun.net.http.allowRestrictedHeaders", "true");
// File path and server URL
String filePath = "C:\\myfile\\path.jpg";
URL uploadURL = new URL("MyURL");
// Initialize the TUS client
TusClient client = new TusClient();
client.setUploadCreationURL(uploadURL);
// Prepare the file
File file = new File(filePath);
if (!file.exists()) {
logger.error("File not found: " + filePath);
return;
}
long fileSize = file.length();
// Set headers
Map<String, String> headers = new HashMap<>();
headers.put("Tus-Resumable", "1.0.0");
headers.put("Upload-Length", String.valueOf(fileSize));
headers.put("X-Token", "<Your-Actual-Token>");
logger.debug("Headers set: " + headers);
client.setHeaders(headers);
// Create the upload
TusUpload upload = new TusUpload(file);
upload.setSize(fileSize);
// Set metadata
Map<String, String> metadata = new HashMap<>();
metadata.put("filename", file.getName());
metadata.put("filetype", "image/jpeg");
// Set additional metadata as observed
//Metadata added here
// Encode metadata
StringBuilder encodedMetadata = new StringBuilder();
for (Map.Entry<String, String> entry : metadata.entrySet()) {
if (encodedMetadata.length() > 0) {
encodedMetadata.append(",");
}
String encodedValue = Base64.getEncoder().encodeToString(entry.getValue().getBytes("UTF-8"));
encodedMetadata.append(entry.getKey()).append(" ").append(encodedValue);
}
headers.put("Upload-Metadata", encodedMetadata.toString());
// Create and start the upload process
TusUploader uploader = client.createUpload(upload);
uploader.setChunkSize(1024 * 1024); // 1MB chunk size
logger.info("Starting upload process.");
while (uploader.uploadChunk() > -1) {
long uploadedBytes = uploader.getOffset();
logger.info(String.format("Uploaded %d of %d bytes", uploadedBytes, fileSize));
}
uploader.finish();
logger.info("Upload completed successfully!");
} catch (Exception e) {
logger.error("Failed to complete upload", e);
}
}
}
This is my Error
ERROR App:101 - Failed to complete upload
io.tus.java.client.ProtocolException: unexpected status code (412) while creating upload
at io.tus.java.client.TusClient.createUpload(TusClient.java:211)
at com.example.App.main(App.java:88)
at org.codehaus.mojo.exec.ExecJavaMojo.doMain(ExecJavaMojo.java:375)
at org.codehaus.mojo.exec.ExecJavaMojo.doExec(ExecJavaMojo.java:364)
at org.codehaus.mojo.exec.ExecJavaMojo.lambda$execute$0(ExecJavaMojo.java:286)
at java.base/java.lang.Thread.run(Thread.java:1575)
- Vorherrschende Sprache
- Java
- Sterne
- 246
- Forks
- 90
- Ø Merge
- 13 Std. 2 Min.
- Gemergte PRs (30 T.)
- 1
Entwicklungsumgebung
Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus tus/tus-java-client
-
question
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 35/100
tus/tus-java-client#144 · 1 Kommentar ·
-
tus 2.0 supportOffenenhancement
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 20/100
tus/tus-java-client#114 · 1 Kommentar ·
-
question
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 25/100
tus/tus-java-client#113 · 1 Kommentar ·
-
enhancement
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 39/100
tus/tus-java-client#98 ·
-
Major release: v2Offen
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 15/100
tus/tus-java-client#78 · 8 Kommentare · 1 Reaktion ·
Alle Issues in tus/tus-java-client
Ähnliche Issues
-
enhancement
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
Maintainer antworten meist innerhalb von 1 Tag
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 64/100
Maintainer antworten meist innerhalb von 1 Tag
-
enhancement good first issue
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
ahmedmmordi/store-app#8 ·
-
jhipster heroku fails on heroku git:remote when reusing an existing app outside a git repositoryOffenarea: triage theme: undefined
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
jhipster/generator-jhipster#36018 ·
Maintainer antworten meist innerhalb von 1 Tag
-
component/zeebe kind/feature scope/broker
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Maintainer antworten meist innerhalb von 1 Tag