Yes, the code works. To test the overall functionality, I have implemented a
small test app, looking at your code here:
https://jclouds.apache.org/guides/azure-storage/ . I just pass an SAS as a
credential and run the app, which manipulates blobs and containers in my own
azure subscription. this is what I do (left alone some lines, not related to
jclouds):
```
public static String storageAccountName = "-storage-account-name-";
//here I am passing the SAS instead of SharedKey, but a SharedKey would
also work.
public static String storageAccountKey =
"sv=2018-03-28&ss=b&srt=sco&sp=rwdlac&se=2019-
02-04T17:13:28Z&st=2019-02-
04T09:13:28Z&spr=https&sig=TksMpiV1GiUqlzsaPWMko91bSAs%2Bt%2FPYvm7zTbQ%2F4ls%3D";
public static String containerName = "-container-name-";
public static String blobFullyQualifiedFileName = "-blob-name-fq-";
public static String blobName = "-blob-name-1-";
public static String blobName2 = "blob-name-2-";
Iterable<Module> modules = ImmutableSet.<Module> of(new
SLF4JLoggingModule());
//here I am creating BlobStoreContext with the SAS key
BlobStoreContext context = ContextBuilder.newBuilder("azureblob")
.modules(modules)
.credentials(storageAccountName,
storageAccountKey)
.buildView(BlobStoreContext.class);
BlobStore blobStore = context.getBlobStore();
ByteSource payload1 = Files.asByteSource(new
File(blobFullyQualifiedFileName));
Blob blobx = null;
try {
blobx = context.getBlobStore().blobBuilder(blobName2)
.payload(payload1) // or InputStream
.contentLength(payload1.size())
.build();
} catch (Exception e) {
e.printStackTrace();
}
//put blob
blobStore.putBlob(containerName, blobx);
//create container
blobStore.createContainerInLocation(null, "test");
AzureBlobClient azureBlobClient =
context.unwrapApi(AzureBlobClient.class);
System.out.println(azureBlobClient);
//checking if a blob exists
boolean bool = blobStore.blobExists(containerName, blobName);
System.out.println(bool);
//getting the blob
AzureBlob blob = azureBlobClient.getBlob(containerName, blobName);
Payload pl = blob.getPayload();
//signing the request
HttpRequest req = context.getSigner().signGetBlob(containerName,
blobName);
String m = req.getMethod();
String rl = req.getRequestLine();
//getting blob properties
Object object = azureBlobClient.getBlobProperties(containerName,
blobName);
System.out.println(object);
context.close();
```
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/1270#issuecomment-462648770