Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private static void uploadObject(boolean useCustomMetadata)
- throws IOException {
- View.header1("Uploading object.");
- final long objectSize = 100; /* 100 B */
- // InputStreamContent mediaContent = new
- // InputStreamContent("application/octet-stream",
- // new RandomDataBlockInputStream(objectSize, 1024));
- FileInputStream file = new FileInputStream(new File(
- "src/main/resources/image.jpg"));
- InputStreamContent mediaContent = new InputStreamContent("image/jpeg",
- file);
- // Not strictly necessary, but allows optimization in the cloud.
- // mediaContent.setLength(OBJECT_SIZE);
- StorageObject objectMetadata = null;
- if (useCustomMetadata) {
- // If you have custom settings for metadata on the object you want
- // to set
- // then you can allocate a StorageObject and set the values here.
- // You can
- // leave out setBucket(), since the bucket is in the insert
- // command's
- // parameters.
- List<ObjectAccessControl> acl = Lists.newArrayList();
- if (settings.getEmail() != null && !settings.getEmail().isEmpty()) {
- acl.add(new ObjectAccessControl().setEntity(
- "user-" + settings.getEmail()).setRole("OWNER"));
- }
- if (settings.getDomain() != null && !settings.getDomain().isEmpty()) {
- acl.add(new ObjectAccessControl().setEntity(
- "domain-" + settings.getDomain()).setRole("READER"));
- }
- objectMetadata = new StorageObject()
- .setName(settings.getPrefix() + "myobjectX")
- .setMetadata(
- ImmutableMap.of("key1", "value1", "key2", "value2"))
- .setAcl(acl).setContentDisposition("attachment");
- }
- Storage.Objects.Insert insertObject = storage.objects().insert(
- settings.getBucket(), objectMetadata, mediaContent);
- if (!useCustomMetadata) {
- // If you don't provide metadata, you will have specify the object
- // name by parameter. You will probably also want to ensure that
- // your
- // default object ACLs (a bucket property) are set appropriately:
- // https://developers.google.com/storage/docs/json_api/v1/buckets#defaultObjectAcl
- insertObject.setName(settings.getPrefix() + "myobjectX");
- }
- insertObject.getMediaHttpUploader()
- .setProgressListener(new CustomUploadProgressListener())
- .setDisableGZipContent(true);
- // For small files, you may wish to call setDirectUploadEnabled(true),
- // to
- // reduce the number of HTTP requests made to the server.
- if (mediaContent.getLength() > 0
- && mediaContent.getLength() <= 2 * 1000 * 1000 /* 2MB */) {
- insertObject.getMediaHttpUploader().setDirectUploadEnabled(true);
- }
- insertObject.execute();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement