@@ -50,12 +50,17 @@ import com.imagekit.api.client.ImageKitClient;
5050import com.imagekit.api.client.okhttp.ImageKitOkHttpClient ;
5151import com.imagekit.api.models.files.FileUploadParams ;
5252import com.imagekit.api.models.files.FileUploadResponse ;
53+ import java.io.ByteArrayInputStream ;
5354
5455// Configures using the `imagekit.imagekitPrivateApiKey`, `imagekit.optionalImagekitIgnoresThis`, `imagekit.imagekitWebhookSecret` and `imagekit.baseUrl` system properties
5556// Or configures using the `IMAGEKIT_PRIVATE_API_KEY`, `OPTIONAL_IMAGEKIT_IGNORES_THIS`, `IMAGEKIT_WEBHOOK_SECRET` and `IMAGE_KIT_BASE_URL` environment variables
5657ImageKitClient client = ImageKitOkHttpClient . fromEnv();
5758
58- FileUploadResponse response = client. files(). upload();
59+ FileUploadParams params = FileUploadParams . builder()
60+ .file(ByteArrayInputStream(" https://www.example.com/public-url.jpg" . getBytes()))
61+ .fileName(" file-name.jpg" )
62+ .build();
63+ FileUploadResponse response = client. files(). upload(params);
5964```
6065
6166## Client configuration
@@ -150,13 +155,18 @@ import com.imagekit.api.client.ImageKitClient;
150155import com.imagekit.api.client.okhttp.ImageKitOkHttpClient ;
151156import com.imagekit.api.models.files.FileUploadParams ;
152157import com.imagekit.api.models.files.FileUploadResponse ;
158+ import java.io.ByteArrayInputStream ;
153159import java.util.concurrent.CompletableFuture ;
154160
155161// Configures using the `imagekit.imagekitPrivateApiKey`, `imagekit.optionalImagekitIgnoresThis`, `imagekit.imagekitWebhookSecret` and `imagekit.baseUrl` system properties
156162// Or configures using the `IMAGEKIT_PRIVATE_API_KEY`, `OPTIONAL_IMAGEKIT_IGNORES_THIS`, `IMAGEKIT_WEBHOOK_SECRET` and `IMAGE_KIT_BASE_URL` environment variables
157163ImageKitClient client = ImageKitOkHttpClient . fromEnv();
158164
159- CompletableFuture<FileUploadResponse > response = client. async(). files(). upload();
165+ FileUploadParams params = FileUploadParams . builder()
166+ .file(ByteArrayInputStream(" https://www.example.com/public-url.jpg" . getBytes()))
167+ .fileName(" file-name.jpg" )
168+ .build();
169+ CompletableFuture<FileUploadResponse > response = client. async(). files(). upload(params);
160170```
161171
162172Or create an asynchronous client from the beginning:
@@ -166,13 +176,18 @@ import com.imagekit.api.client.ImageKitClientAsync;
166176import com.imagekit.api.client.okhttp.ImageKitOkHttpClientAsync ;
167177import com.imagekit.api.models.files.FileUploadParams ;
168178import com.imagekit.api.models.files.FileUploadResponse ;
179+ import java.io.ByteArrayInputStream ;
169180import java.util.concurrent.CompletableFuture ;
170181
171182// Configures using the `imagekit.imagekitPrivateApiKey`, `imagekit.optionalImagekitIgnoresThis`, `imagekit.imagekitWebhookSecret` and `imagekit.baseUrl` system properties
172183// Or configures using the `IMAGEKIT_PRIVATE_API_KEY`, `OPTIONAL_IMAGEKIT_IGNORES_THIS`, `IMAGEKIT_WEBHOOK_SECRET` and `IMAGE_KIT_BASE_URL` environment variables
173184ImageKitClientAsync client = ImageKitOkHttpClientAsync . fromEnv();
174185
175- CompletableFuture<FileUploadResponse > response = client. files(). upload();
186+ FileUploadParams params = FileUploadParams . builder()
187+ .file(ByteArrayInputStream(" https://www.example.com/public-url.jpg" . getBytes()))
188+ .fileName(" file-name.jpg" )
189+ .build();
190+ CompletableFuture<FileUploadResponse > response = client. files(). upload(params);
176191```
177192
178193The asynchronous client supports the same options as the synchronous one, except most methods return ` CompletableFuture ` s.
@@ -184,50 +199,50 @@ The SDK defines methods that accept files.
184199To upload a file, pass a [ ` Path ` ] ( https://docs.oracle.com/javase/8/docs/api/java/nio/file/Path.html ) :
185200
186201``` java
187- import com.imagekit.api.models.beta.v2. files.FileUploadParams ;
188- import com.imagekit.api.models.beta.v2. files.FileUploadResponse ;
202+ import com.imagekit.api.models.files.FileUploadParams ;
203+ import com.imagekit.api.models.files.FileUploadResponse ;
189204import java.nio.file.Paths ;
190205
191206FileUploadParams params = FileUploadParams . builder()
192207 .fileName(" fileName" )
193208 .file(Paths . get(" /path/to/file" ))
194209 .build();
195- FileUploadResponse response = client. beta() . v2() . files(). upload(params);
210+ FileUploadResponse response = client. files(). upload(params);
196211```
197212
198213Or an arbitrary [ ` InputStream ` ] ( https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html ) :
199214
200215``` java
201- import com.imagekit.api.models.beta.v2. files.FileUploadParams ;
202- import com.imagekit.api.models.beta.v2. files.FileUploadResponse ;
216+ import com.imagekit.api.models.files.FileUploadParams ;
217+ import com.imagekit.api.models.files.FileUploadResponse ;
203218import java.net.URL ;
204219
205220FileUploadParams params = FileUploadParams . builder()
206221 .fileName(" fileName" )
207222 .file(new URL (" https://example.com//path/to/file" ). openStream())
208223 .build();
209- FileUploadResponse response = client. beta() . v2() . files(). upload(params);
224+ FileUploadResponse response = client. files(). upload(params);
210225```
211226
212227Or a ` byte[] ` array:
213228
214229``` java
215- import com.imagekit.api.models.beta.v2. files.FileUploadParams ;
216- import com.imagekit.api.models.beta.v2. files.FileUploadResponse ;
230+ import com.imagekit.api.models.files.FileUploadParams ;
231+ import com.imagekit.api.models.files.FileUploadResponse ;
217232
218233FileUploadParams params = FileUploadParams . builder()
219234 .fileName(" fileName" )
220235 .file(" content" . getBytes())
221236 .build();
222- FileUploadResponse response = client. beta() . v2() . files(). upload(params);
237+ FileUploadResponse response = client. files(). upload(params);
223238```
224239
225240Note that when passing a non-` Path ` its filename is unknown so it will not be included in the request. To manually set a filename, pass a [ ` MultipartField ` ] ( image-kit-java-core/src/main/kotlin/com/imagekit/api/core/Values.kt ) :
226241
227242``` java
228243import com.imagekit.api.core.MultipartField ;
229- import com.imagekit.api.models.beta.v2. files.FileUploadParams ;
230- import com.imagekit.api.models.beta.v2. files.FileUploadResponse ;
244+ import com.imagekit.api.models.files.FileUploadParams ;
245+ import com.imagekit.api.models.files.FileUploadResponse ;
231246import java.io.InputStream ;
232247import java.net.URL ;
233248
@@ -238,7 +253,7 @@ FileUploadParams params = FileUploadParams.builder()
238253 .filename(" /path/to/file" )
239254 .build())
240255 .build();
241- FileUploadResponse response = client. beta() . v2() . files(). upload(params);
256+ FileUploadResponse response = client. files(). upload(params);
242257```
243258
244259## Raw responses
@@ -252,8 +267,13 @@ import com.imagekit.api.core.http.Headers;
252267import com.imagekit.api.core.http.HttpResponseFor ;
253268import com.imagekit.api.models.files.FileUploadParams ;
254269import com.imagekit.api.models.files.FileUploadResponse ;
270+ import java.io.ByteArrayInputStream ;
255271
256- HttpResponseFor<FileUploadResponse > response = client. files(). withRawResponse(). upload();
272+ FileUploadParams params = FileUploadParams . builder()
273+ .file(ByteArrayInputStream(" https://www.example.com/public-url.jpg" . getBytes()))
274+ .fileName(" file-name.jpg" )
275+ .build();
276+ HttpResponseFor<FileUploadResponse > response = client. files(). withRawResponse(). upload(params);
257277
258278int statusCode = response. statusCode();
259279Headers headers = response. headers();
@@ -362,7 +382,9 @@ To set a custom timeout, configure the method call using the `timeout` method:
362382``` java
363383import com.imagekit.api.models.files.FileUploadResponse ;
364384
365- FileUploadResponse response = client. files(). upload(RequestOptions . builder(). timeout(Duration . ofSeconds(30 )). build());
385+ FileUploadResponse response = client. files(). upload(
386+ params, RequestOptions . builder(). timeout(Duration . ofSeconds(30 )). build()
387+ );
366388```
367389
368390Or configure the default for all method calls at the client level:
@@ -480,10 +502,10 @@ To set undocumented parameters on _nested_ headers, query params, or body classe
480502
481503``` java
482504import com.imagekit.api.core.JsonValue ;
483- import com.imagekit.api.models.custommetadatafields.CustomMetadataFieldCreateParams ;
505+ import com.imagekit.api.models.files.FileUploadParams ;
484506
485- CustomMetadataFieldCreateParams params = CustomMetadataFieldCreateParams . builder()
486- .schema( CustomMetadataFieldCreateParams . Schema . builder()
507+ FileUploadParams params = FileUploadParams . builder()
508+ .transformation( FileUploadParams . Transformation . builder()
487509 .putAdditionalProperty(" secretProperty" , JsonValue . from(" 42" ))
488510 .build())
489511 .build();
@@ -494,9 +516,13 @@ These properties can be accessed on the nested built object later using the `_ad
494516To set a documented parameter or property to an undocumented or not yet supported _ value_ , pass a [ ` JsonValue ` ] ( image-kit-java-core/src/main/kotlin/com/imagekit/api/core/Values.kt ) object to its setter:
495517
496518``` java
519+ import com.imagekit.api.core.JsonValue ;
497520import com.imagekit.api.models.files.FileUploadParams ;
498521
499- FileUploadParams params = FileUploadParams . builder(). build();
522+ FileUploadParams params = FileUploadParams . builder()
523+ .file(JsonValue . from(42 ))
524+ .fileName(" file-name.jpg" )
525+ .build();
500526```
501527
502528The most straightforward way to create a [ ` JsonValue ` ] ( image-kit-java-core/src/main/kotlin/com/imagekit/api/core/Values.kt ) is using its ` from(...) ` method:
@@ -544,15 +570,11 @@ To forcibly omit a required parameter or property, pass [`JsonMissing`](image-ki
544570
545571``` java
546572import com.imagekit.api.core.JsonMissing ;
547- import com.imagekit.api.models.custommetadatafields.CustomMetadataFieldCreateParams ;
548573import com.imagekit.api.models.files.FileUploadParams ;
549574
550- FileUploadParams params = CustomMetadataFieldCreateParams . builder()
551- .name(" price" )
552- .schema(CustomMetadataFieldCreateParams . Schema . builder()
553- .type(CustomMetadataFieldCreateParams . Schema . Type . NUMBER )
554- .build())
555- .label(JsonMissing . of())
575+ FileUploadParams params = FileUploadParams . builder()
576+ .fileName(" fileName" )
577+ .file(JsonMissing . of())
556578 .build();
557579```
558580
@@ -592,21 +614,22 @@ To access a property's raw JSON value, which may be undocumented, call its `_` p
592614
593615``` java
594616import com.imagekit.api.core.JsonField ;
617+ import java.io.InputStream ;
595618import java.util.Optional ;
596619
597- JsonField<Object > field = client. files(). upload(params). _field ();
620+ JsonField<InputStream > file = client. files(). upload(params). _file ();
598621
599- if (field . isMissing()) {
622+ if (file . isMissing()) {
600623 // The property is absent from the JSON response
601- } else if (field . isNull()) {
624+ } else if (file . isNull()) {
602625 // The property was set to literal null
603626} else {
604627 // Check if value was provided as a string
605628 // Other methods include `asNumber()`, `asBoolean()`, etc.
606- Optional<String > jsonString = field . asString();
629+ Optional<String > jsonString = file . asString();
607630
608631 // Try to deserialize into a custom type
609- MyClass myObject = field . asUnknown(). orElseThrow(). convert(MyClass . class);
632+ MyClass myObject = file . asUnknown(). orElseThrow(). convert(MyClass . class);
610633}
611634```
612635
@@ -629,7 +652,9 @@ Or configure the method call to validate the response using the `responseValidat
629652``` java
630653import com.imagekit.api.models.files.FileUploadResponse ;
631654
632- FileUploadResponse response = client. files(). upload(RequestOptions . builder(). responseValidation(true ). build());
655+ FileUploadResponse response = client. files(). upload(
656+ params, RequestOptions . builder(). responseValidation(true ). build()
657+ );
633658```
634659
635660Or configure the default for all method calls at the client level:
0 commit comments