Skip to main content

Cloudflare API upload to R2 shows file type as application/octet-stream

Problem

As shown in the image, I'm using Java's aws-java-sdk-s3 to upload to CF's R2, but the file type displays as application/octet-stream

<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-s3</artifactId>
<version>1.12.701</version>
</dependency>

Solution

Add metadata when uploading

Upload code:

    public void uploadFile(String identifier, InputStream inputStream, ObjectMetadata metadata) {
PutObjectRequest putObjectRequest = new PutObjectRequest(this.bucket, identifier, inputStream, metadata);
this.client.putObject(putObjectRequest);
}

Added metadata:


ObjectMetadata metadata = new ObjectMetadata();
metadata.setHeader("Content-Type", "application/json");