in commands/src/main/java/org/jclouds/karaf/commands/blobstore/BlobStoreCommandBase.java [156:176]
public void write(BlobStore blobStore, String bucket, String blobName, Blob blob, PutOptions options, boolean signedRequest) throws Exception {
if (blobName.contains("/")) {
String directory = BlobStoreUtils.parseDirectoryFromPath(blobName);
if (!Strings.isNullOrEmpty(directory)) {
blobStore.createDirectory(bucket, directory);
}
}
if (signedRequest) {
BlobStoreContext context = blobStore.getContext();
HttpRequest request = context.getSigner().signPutBlob(bucket, blob);
HttpClient httpClient = context.utils().http();
HttpResponse response = httpClient.invoke(request);
int statusCode = response.getStatusCode();
if (statusCode != 200 && statusCode != 201) {
throw new IOException(response.getStatusLine());
}
} else {
blobStore.putBlob(bucket, blob, options);
}
}