411/412 error while using tus-java-client
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 35/100
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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)
- Lenguaje dominante
- Java
- Estrellas
- 246
- Forks
- 90
- Merge medio
- 13 h 2 min
- PR fusionados (30 d)
- 1
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de tus/tus-java-client
-
question
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
tus/tus-java-client#144 · 1 comentario ·
-
tus 2.0 supportAbiertoenhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 20/100
tus/tus-java-client#114 · 1 comentario ·
-
question
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
tus/tus-java-client#113 · 1 comentario ·
-
enhancement
Dificultad 4/5 3-5 días Aptitud para principiantes 39/100
tus/tus-java-client#98 ·
-
Major release: v2Abierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 15/100
tus/tus-java-client#78 · 8 comentarios · 1 reacción ·
Todos los issues de tus/tus-java-client
Issues similares
-
API `/api/dataverses/{identifier}/dataset/linkingDataverses?alreadyLinking=true` returns at most 1 collectionPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. AbiertoType: Bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día
-
javaoperatorsdk.client.oauth-token has no effect on the Kubernetes clientPosiblemente ocupada @RaphaelFakhri la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
-
MCP add-on: JSON responses with non-ASCII characters are truncated (wrong Content-Length)Posiblemente ocupada @dhanushbs10 la tomó hoy. Abiertoadd-on bug in:mcp
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Map.Coordinate does not implement proper equalsPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abiertovaadin-map
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
vaadin/flow-components#10586 ·
Los mantenedores suelen responder en 1 día
-
WeReadInstaller writes the launcher database on the main thread at handover (Activity pause timeout)Abiertobug good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100