Skip to content

Instantly share code, notes, and snippets.

@recursivecodes
Last active December 20, 2018 17:22
Show Gist options
  • Select an option

  • Save recursivecodes/3dbd2af2330f16d658f9d7b3bffe11c8 to your computer and use it in GitHub Desktop.

Select an option

Save recursivecodes/3dbd2af2330f16d658f9d7b3bffe11c8 to your computer and use it in GitHub Desktop.
//route handler (Bootstrap.groovy):
post "/oci/upload-commit", { req, res ->
/*
expects a JSON object in the request body that looks like this:
{
uploadId: "",
objectName: "",
uploads: [
{
partNum: 1,
ETag: "",
}
]
}
*/
Map body = new JsonSlurper().parseText(req.body())
def details = []
body.uploads.each { Map file ->
details << CommitMultipartUploadPartDetails.builder()
.partNum(file.partNum)
.etag(file.ETag)
.build()
}
return JsonOutput.toJson( objectService.commitMultipartUpload(body.objectName, body.uploadId, details) )
}
//service method (ObjectService.groovy):
def commitMultipartUpload(String objectName, String uploadId, List<CommitMultipartUploadPartDetails> partDetails) {
CommitMultipartUploadDetails commitMultipartUploadDetails = CommitMultipartUploadDetails.builder().partsToCommit(partDetails).build()
CommitMultipartUploadRequest commitMultipartUploadRequest = CommitMultipartUploadRequest.builder()
.namespaceName(namespaceName)
.bucketName(bucketName)
.objectName(objectName)
.uploadId(uploadId)
.commitMultipartUploadDetails(commitMultipartUploadDetails)
.build()
return objectClient.commitMultipartUpload(commitMultipartUploadRequest)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment