Skip to content

Commit

Permalink
Add overloaded methods for putObject API (minio#747)
Browse files Browse the repository at this point in the history
1. public void putObject(String bucketName, String objectName, String fileName, Long size,
                     Map<String,String> headerMap, ServerSideEncryption sse, String contentType)
2. public void putObject(String bucketName, String objectName, InputStream data, Long size,
                        Map<String, String> headerMap, ServerSideEncryption sse, String contentType)

These two methods can take values/null for all the optional parameters.
  • Loading branch information
sinhaashish authored and kannappanr committed Apr 30, 2019
1 parent b2028f5 commit 26787af
Show file tree
Hide file tree
Showing 20 changed files with 738 additions and 216 deletions.
508 changes: 372 additions & 136 deletions api/src/main/java/io/minio/MinioClient.java

Large diffs are not rendered by default.

14 changes: 7 additions & 7 deletions api/src/test/java/io/minio/MinioClientTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -559,7 +559,7 @@ public void testPutSmallObject()
String inputString = HELLO_WORLD;
ByteArrayInputStream data = new ByteArrayInputStream(inputString.getBytes(StandardCharsets.UTF_8));

client.putObject(BUCKET, "key", data, 11, APPLICATION_OCTET_STREAM);
client.putObject(BUCKET, "key", data, 11L, null, null, APPLICATION_OCTET_STREAM);
}

// this case only occurs for minio cloud storage
Expand All @@ -584,7 +584,7 @@ public void testPutSmallObjectFails()
String inputString = HELLO_WORLD;
ByteArrayInputStream data = new ByteArrayInputStream(inputString.getBytes(StandardCharsets.UTF_8));

client.putObject(BUCKET, "key", data, 11, APPLICATION_OCTET_STREAM);
client.putObject(BUCKET, "key", data, 11L, null, null, APPLICATION_OCTET_STREAM);
throw new RuntimeException(EXPECTED_EXCEPTION_DID_NOT_FIRE);
}

Expand All @@ -609,7 +609,7 @@ public void testPutIncompleteSmallPut()
String inputString = "hello worl";
ByteArrayInputStream data = new ByteArrayInputStream(inputString.getBytes(StandardCharsets.UTF_8));

client.putObject(BUCKET, "key", data, 11, APPLICATION_OCTET_STREAM);
client.putObject(BUCKET, "key", data, 11L, null, null, APPLICATION_OCTET_STREAM);
throw new RuntimeException(EXPECTED_EXCEPTION_DID_NOT_FIRE);
}

Expand Down Expand Up @@ -638,7 +638,7 @@ public void testSpecialCharsNameWorks()
ascii[i - 1] = (byte) i;
}
String contentType = null;
client.putObject(BUCKET, "世界" + new String(ascii, "UTF-8"), data, 11, contentType);
client.putObject(BUCKET, "世界" + new String(ascii, "UTF-8"), data, 11L, null, null, contentType);
}

@SuppressFBWarnings("NP")
Expand All @@ -662,7 +662,7 @@ public void testNullContentTypeWorks()
ByteArrayInputStream data = new ByteArrayInputStream(inputString.getBytes(StandardCharsets.UTF_8));

String contentType = null;
client.putObject(BUCKET, "key", data, 11, contentType);
client.putObject(BUCKET, "key", data, 11L, null, null, contentType);
}

@Test
Expand All @@ -684,7 +684,7 @@ public void testCustomContentTypeWorks()
String inputString = HELLO_WORLD;
ByteArrayInputStream data = new ByteArrayInputStream(inputString.getBytes(StandardCharsets.UTF_8));

client.putObject(BUCKET, "key", data, 11, APPLICATION_JAVASCRIPT);
client.putObject(BUCKET, "key", data, 11L, null, null, APPLICATION_JAVASCRIPT);
}

@Test
Expand Down Expand Up @@ -828,7 +828,7 @@ private RecordedRequest putObjectWithHeaders(Map<String, String> headerMap)
server.start();

MinioClient client = new MinioClient(server.url("").toString(), "access_key", "secret_key", "us-east-1");
client.putObject(BUCKET, "key", new ByteArrayInputStream(new byte[]{'a'}), 1, headerMap);
client.putObject(BUCKET, "key", new ByteArrayInputStream(new byte[]{'a'}), 1L, headerMap, null, null);

return server.takeRequest();
}
Expand Down
277 changes: 276 additions & 1 deletion docs/API.md

Large diffs are not rendered by default.

3 changes: 2 additions & 1 deletion examples/CopyObject.java
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,8 @@ public static void main(String[] args)
ByteArrayInputStream bais = new ByteArrayInputStream(builder.toString().getBytes("UTF-8"));

// Create object 'my-objectname' in 'my-bucketname' with content from the input stream.
minioClient.putObject("my-bucketname", "my-objectname", bais, bais.available(), "application/octet-stream");
minioClient.putObject("my-bucketname", "my-objectname", bais, Long.valueOf(bais.available()), null, null,
"application/octet-stream");
bais.close();
System.out.println("my-objectname is uploaded successfully");

Expand Down
4 changes: 2 additions & 2 deletions examples/CopyObjectEncrypted.java
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ public static void main(String[] args)
ServerSideEncryption sseTarget = ServerSideEncryption.withCustomerKey(secretKeySpecTarget);

// Create object 'my-objectname' in 'my-bucketname' with content from the input stream.
minioClient.putObject("my-bucketname", "my-objectname", bais, bais.available(), ssePut);
minioClient.putObject("my-bucketname", "my-objectname", bais, Long.valueOf(bais.available()), null, ssePut, null);
System.out.println("my-objectname is uploaded successfully");

minioClient.copyObject("my-bucketname", "my-objectname", sseSource, "my-destbucketname",
Expand All @@ -75,4 +75,4 @@ public static void main(String[] args)
}
System.out.println("finished");
}
}
}
2 changes: 1 addition & 1 deletion examples/CopyObjectEncryptedKms.java
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ public static void main(String[] args)
ServerSideEncryption sse = ServerSideEncryption.withManagedKeys("Key-Id", myContext);

// Create object 'my-objectname' in 'my-bucketname' with content from the input stream.
minioClient.putObject("my-bucketname", "my-objectname", bais, bais.available(), sse);
minioClient.putObject("my-bucketname", "my-objectname", bais, Long.valueOf(bais.available()), null, sse, null);
bais.close();
System.out.println("my-objectname is uploaded successfully");

Expand Down
2 changes: 1 addition & 1 deletion examples/CopyObjectEncryptedS3.java
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ public static void main(String[] args)
ServerSideEncryption sse = ServerSideEncryption.atRest();

// Create object 'my-objectname' in 'my-bucketname' with content from the input stream.
minioClient.putObject("my-bucketname", "my-objectname", bais, bais.available(), sse);
minioClient.putObject("my-bucketname", "my-objectname", bais, Long.valueOf(bais.available()), null, sse, null);
bais.close();
System.out.println("my-objectname is uploaded successfully");

Expand Down
3 changes: 2 additions & 1 deletion examples/CopyObjectMetadata.java
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,8 @@ public static void main(String[] args)
ByteArrayInputStream bais = new ByteArrayInputStream(builder.toString().getBytes("UTF-8"));

// Create object 'my-objectname' in 'my-bucketname' with content from the input stream.
minioClient.putObject("my-bucketname", "my-objectname", bais, bais.available(), "application/octet-stream");
minioClient.putObject("my-bucketname", "my-objectname", bais, Long.valueOf(bais.available()),null, null,
"application/octet-stream");
bais.close();
System.out.println("my-objectname is uploaded successfully");

Expand Down
2 changes: 1 addition & 1 deletion examples/PutGetObjectEncrypted.java
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ public static void main(String[] args)
// To test SSE-C
ServerSideEncryption sse = ServerSideEncryption.withCustomerKey(keyGen.generateKey());

minioClient.putObject("my-bucketname", "my-objectname", bais, bais.available(), sse);
minioClient.putObject("my-bucketname", "my-objectname", bais, Long.valueOf(bais.available()),null, sse, null);

bais.close();

Expand Down
4 changes: 3 additions & 1 deletion examples/PutGetObjectEncryptedFile.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,15 @@
import java.security.NoSuchAlgorithmException;
import java.security.InvalidKeyException;


import javax.crypto.KeyGenerator;
import org.xmlpull.v1.XmlPullParserException;

import io.minio.MinioClient;
import io.minio.ServerSideEncryption;
import io.minio.errors.MinioException;


public class PutGetObjectEncryptedFile {
/**
* MinioClient.putObject() and MinioClient.getObject() to a file example for SSE_C.
Expand All @@ -36,7 +38,7 @@ public static void main(String[] args)

// To test SSE-C
ServerSideEncryption sse = ServerSideEncryption.withCustomerKey(keyGen.generateKey());
minioClient.putObject(bucketName, objectName, sse, inputfile);
minioClient.putObject(bucketName, objectName, inputfile, null, null, sse, null);
System.out.println("my-objectname is encrypted and uploaded successfully.");

minioClient.getObject(bucketName, objectName, sse, outputfile);
Expand Down
3 changes: 2 additions & 1 deletion examples/PutObject.java
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,8 @@ public static void main(String[] args)
ByteArrayInputStream bais = new ByteArrayInputStream(builder.toString().getBytes("UTF-8"));

// Create object 'my-objectname' in 'my-bucketname' with content from the input stream.
minioClient.putObject("my-bucketname", "my-objectname", bais, bais.available(), "application/octet-stream");
minioClient.putObject("my-bucketname", "my-objectname", bais, Long.valueOf(bais.available()), null, null,
"application/octet-stream");
bais.close();
System.out.println("my-objectname is uploaded successfully");
} catch (MinioException e) {
Expand Down
2 changes: 1 addition & 1 deletion examples/PutObjectEncryptedKms.java
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ public static void main(String[] args)
// To test SSE-KMS
ServerSideEncryption sse = ServerSideEncryption.withManagedKeys("Key-Id", myContext);

minioClient.putObject("my-bucketname", "my-objectname", bais, bais.available(), sse);
minioClient.putObject("my-bucketname", "my-objectname", bais, Long.valueOf(bais.available()), null, sse, null);

bais.close();

Expand Down
2 changes: 1 addition & 1 deletion examples/PutObjectEncryptedS3.java
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ public static void main(String[] args)
// To test SSE-S3
ServerSideEncryption sse = ServerSideEncryption.atRest();

minioClient.putObject("my-bucketname", "my-objectname", bais, bais.available(), sse);
minioClient.putObject("my-bucketname", "my-objectname", bais, Long.valueOf(bais.available()), null, sse, null);

bais.close();

Expand Down
3 changes: 2 additions & 1 deletion examples/PutObjectProgressBar.java
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,8 @@ public static void main(String[] args) throws InvalidKeyException, NoSuchAlgorit
InputStream pis = new BufferedInputStream(new ProgressStream("Uploading... ",
ProgressBarStyle.ASCII,
new FileInputStream(file)));
minioClient.putObject(bucketName, objectName, pis, pis.available(), "application/octet-stream");
minioClient.putObject(bucketName, objectName, pis, Long.valueOf(pis.available()), null, null,
"application/octet-stream");
pis.close();
System.out.println("my-objectname is uploaded successfully");
}
Expand Down
3 changes: 2 additions & 1 deletion examples/PutObjectUiProgressBar.java
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,8 @@ private void uploadFile(String fileName) throws IOException, NoSuchAlgorithmExce
bis);

pmis.getProgressMonitor().setMillisToPopup(10);
minioClient.putObject("bank", "my-objectname", pmis, bis.available(), "application/octet-stream");
minioClient.putObject("bank", "my-objectname", pmis, Long.valueOf(pmis.available()), null, null,
"application/octet-stream");
System.out.println("my-objectname is uploaded successfully");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
Expand Down
3 changes: 2 additions & 1 deletion examples/PutObjectWithMetadata.java
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,8 @@ public static void main(String[] args)
headerMap.put("X-Amz-Storage-Class", "REDUCED_REDUNDANCY");

// Create object 'my-objectname' in 'my-bucketname' with custom metadata in headerMap
minioClient.putObject("my-bucketname", "my-objectname", bais, bais.available(), headerMap);
minioClient.putObject("my-bucketname", "my-objectname", bais, Long.valueOf(bais.available()), headerMap,
null, null);
bais.close();
System.out.println("my-objectname is uploaded successfully");
} catch (MinioException e) {
Expand Down
2 changes: 1 addition & 1 deletion examples/PutStatObjectEncrypted.java
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ public static void main(String[] args)
// To test SSE-C
ServerSideEncryption sse = ServerSideEncryption.withCustomerKey(keyGen.generateKey());

minioClient.putObject("my-bucketname", "my-objectname", bais, bais.available(), sse);
minioClient.putObject("my-bucketname", "my-objectname", bais, Long.valueOf(bais.available()), null, sse, null);

bais.close();

Expand Down
5 changes: 4 additions & 1 deletion examples/UploadObject.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@

import org.xmlpull.v1.XmlPullParserException;

import static java.nio.file.StandardOpenOption.*;
import java.nio.file.*;

import io.minio.MinioClient;
import io.minio.errors.MinioException;

Expand All @@ -39,7 +42,7 @@ public static void main(String[] args)
// "YOUR-SECRETACCESSKEY");

// Upload 'my-filename' as object 'my-objectname' in 'my-bucketname'.
minioClient.putObject("my-bucketname", "my-objectname", "my-filename");
minioClient.putObject("my-bucketname", "my-objectname", "my-filename", null, null, null, null);
System.out.println("my-filename is uploaded to my-objectname successfully");
} catch (MinioException e) {
System.out.println("Error occurred: " + e);
Expand Down
Loading

0 comments on commit 26787af

Please sign in to comment.