@Option(name = "-S", aliases = "--signed-request", description = "Use a signed request", required = false, multiValued = false)
boolean signedRequest;
@Override
protected Object doExecute() throws Exception {
BlobStore blobStore = getBlobStore();
BlobBuilder builder = blobStore.blobBuilder(blobName);
if (stringPayload) {
builder = builder.payload(payload.getBytes()); // use default Charset
} else if (urlPayload) {
InputStream input = new URL(payload).openStream();
try {
builder = builder.payload(ByteStreams.toByteArray(input));
} finally {
input.close();
}
} else {
ByteSource byteSource = Files.asByteSource(new File(payload));
BlobBuilder.PayloadBlobBuilder payloadBuilder = builder
.payload(byteSource)
.contentLength(byteSource.size());
if (!multipartUpload) {
payloadBuilder = payloadBuilder.contentMD5(byteSource.hash(Hashing.md5()).asBytes());
}
builder = payloadBuilder;
}
PutOptions options = multipartUpload ? new PutOptions().multipart(true) : PutOptions.NONE;
write(blobStore, containerName, blobName, builder.build(), options, signedRequest);
cacheProvider.getProviderCacheForType("container").put(blobStore.getContext().unwrap().getId(), containerName);
cacheProvider.getProviderCacheForType("blob").put(blobStore.getContext().unwrap().getId(), blobName);
return null;
}