...

Java SDK

Enterprise-Grade File Management for Java

Build robust, scalable file processing systems with our comprehensive Java SDK. Perfect for Spring Boot, Quarkus, enterprise applications, and microservices architectures.

Basic Java Upload
// Simple file upload and image transformation
import org.filestack.Client;
import org.filestack.Config;
import org.filestack.FileLink;
import org.filestack.transforms.ImageTransform;
import org.filestack.transforms.tasks.ResizeTask;

Config config = new Config("YOUR_API_KEY");
Client client = new Client(config);

// Upload a file
FileLink file = client.upload("/path/to/image.jpg", false);

// Create resize transformation
ResizeTask resizeTask = new ResizeTask.Builder()
    .width(300)
    .fit("center")
    .build();

ImageTransform transform = file.imageTransform()
    .addTask(resizeTask);

System.out.println("Uploaded: " + file.getUrl());
System.out.println("Transformed: " + transform.url());

Built for Java Enterprise

Our Java SDK follows enterprise Java conventions and integrates seamlessly with popular frameworks and build tools.

High Performance

Optimized for throughput with connection pooling, HTTP/2 support, and efficient memory management for large file operations.

Trusted by innovative companies worldwide

Enterprise-Ready Architecture

Designed for mission-critical applications with enterprise-grade features, security, and scalability. Perfect for microservices, batch processing, and high-throughput systems.

🏗️ Synchronous and Asynchronous APIs
Network operations provide synchronous methods and RxJava 2 asynchronous variants.

File Uploads
Upload files from paths or input streams with optional storage settings and Intelligent Ingestion.

🔍 File Operations
Download, overwrite, delete, and retrieve uploaded files through FileLink objects.

🛡️ Transformations
Generate image transformation URLs using ImageTransform and transformation task builders.

📊 Cloud Sources
Access supported cloud providers and transfer selected cloud files into Filestack.

Spring Boot Integration
// Spring Boot integration example
import org.filestack.Client;
import org.filestack.Config;
import org.filestack.FileLink;
import org.filestack.transforms.ImageTransform;
import org.filestack.transforms.tasks.ResizeTask;

Config config = new Config("YOUR_API_KEY");
Client client = new Client(config);

// Upload a file
FileLink file = client.upload("/path/to/image.jpg", false);

// Create resize transformation
ResizeTask resizeTask = new ResizeTask.Builder()
    .width(300)
    .fit("center")
    .build();

ImageTransform transform = file.imageTransform()
    .addTask(resizeTask);

System.out.println("Uploaded: " + file.getUrl());
System.out.println("Transformed: " + transform.url());

Build Tool Integration

Easy integration with Maven, Gradle, and SBT. Requires Java 21 or later

Add Dependency

<dependency>
    <groupId>org.filestack</groupId>
    <artifactId>filestack-java</artifactId>
    <version>1.0.1</version>
</dependency>
implementation 'org.filestack:filestack-java:1.0.1'
libraryDependencies += "org.filestack" % "filestack-java" % "1.0.1"

Basic Usage

Initialize and use the client:

Config config = new Config("YOUR_API_KEY"); 
Client client = new Client(config);
Complete Java Implementation
// Complete working example with new Filestack SDK
import org.filestack.Client;
import org.filestack.Config;
import org.filestack.FileLink;
import org.filestack.transforms.ImageTransform;
import org.filestack.transforms.tasks.ResizeTask;
import org.filestack.transforms.tasks.QualityTask;
import org.filestack.transforms.tasks.OutputTask;

public class FilestackExample {

    private static final String API_KEY = "YOUR_API_KEY";

    public static void main(String[] args) {
        // Initialize client
        Config config = new Config(API_KEY);
        Client client = new Client(config);

        try {
            // Upload a file
            String filePath = "/path/to/image.jpg";
            FileLink file = client.upload(filePath, false);
            
            System.out.println("Upload successful: " + file.getUrl());

            // Create thumbnail
            ImageTransform thumbnail = file.imageTransform()
                .addTask(
                    new ResizeTask.Builder()
                        .width(200)
                        .height(200)
                        .fit("crop")
                        .build()
                )
                .addTask(
                    new QualityTask.Builder()
                        .value(80)
                        .build()
                )
                .addTask(
                    new OutputTask.Builder()
                        .format("webp")
                        .build()
                );

            System.out.println("Thumbnail: " + thumbnail.url());

            // Batch process multiple files
            String[] imagePaths = {"image1.jpg", "image2.png", "image3.gif"};
            processImages(client, imagePaths);

        } catch (Exception e) {
            System.err.println("Error: " + e.getMessage());
            e.printStackTrace();
        }
    }

    private static void processImages(Client client,
        				    String[] imagePaths) {
        for (String path : imagePaths) {
            try {
                // Upload original
                FileLink original = client.upload(path, false);

                // Create small image
                ImageTransform small =
                    original.imageTransform()
                    .addTask(
                        new ResizeTask.Builder()
                            .width(300)
                            .height(300)
                            .fit("crop")
                            .build()
                    );

                // Create medium image
                ImageTransform medium =
                    original.imageTransform()
                    .addTask(
                        new ResizeTask.Builder()
                            .width(600)
                            .height(600)
                            .fit("crop")
                            .build()
                    );

                System.out.println("Processed " + path);
                System.out.println("Small: " + small.url());
                System.out.println("Medium: " + medium.url());
                
            } catch (Exception e) {
                System.err.println("Failed to process " + path + ": " + e.getMessage());
            }
        }
    }
}

Implement Java File Management

Join enterprise teams worldwide who trust Filestack’s Java SDK for mission-critical file management. Scale with confidence using our battle-tested, enterprise-ready solution.