public CloudBlobContainer getCloudBlobContainer(final String containerName) throws StorageException, URISyntaxException { CloudBlobContainer cloudBlobContainer = cloudBlobClient.getContainerReference(containerName); cloudBlobContainer.createIfNotExists(); return cloudBlobContainer; }
public long getBlobLength(final String containerName, final String blobPath) throws URISyntaxException, StorageException { return getCloudBlobContainer(containerName).getBlockBlobReference(blobPath).getProperties().getLength(); }
public boolean getBlobExists(String container, String blobPath) throws URISyntaxException, StorageException { return getCloudBlobContainer(container).getBlockBlobReference(blobPath).exists(); } }
@Override public void run() { try { CloudBlobContainer container = blobClient.getContainerReference(azureContainer); container.createIfNotExists(); CloudBlockBlob blob = container.getBlockBlobReference(azureKey); blob.upload(new java.io.FileInputStream(localFile), localFile.length()); } catch (URISyntaxException e) { throw new RuntimeException(e); } catch (StorageException e) { throw new RuntimeException(e); } catch (FileNotFoundException e) { throw new RuntimeException(e); } catch (IOException e) { throw new RuntimeException(e); } } });
try { CloudBlobClient blobClient = AzureStorageUtils.createCloudBlobClient(context, getLogger(), null); CloudBlobContainer container = blobClient.getContainerReference(containerName); for (ListBlobItem blob : container.listBlobs(prefix, true, EnumSet.of(BlobListingDetails.METADATA), null, operationContext)) { if (blob instanceof CloudBlob) { CloudBlob cloudBlob = (CloudBlob) blob; BlobProperties properties = cloudBlob.getProperties(); StorageUri uri = cloudBlob.getSnapshotQualifiedStorageUri(); .blobName(cloudBlob.getName()) .containerName(containerName) .contentType(properties.getContentType()) .contentLanguage(properties.getContentLanguage()) .etag(properties.getEtag()) .lastModifiedTime(properties.getLastModified().getTime()) .length(properties.getLength());
@Override public void create(UUID jobId, String key, InputStream stream) { try { CloudBlobContainer reference = blobClient.getContainerReference(BLOB_CONTAINER); CloudBlockBlob blob = reference.getBlockBlobReference(createRowKey(jobId, key)); blob.upload(stream, UNKNOWN_LENGTH); } catch (StorageException | URISyntaxException | IOException e) { throw new MicrosoftStorageException("Error creating stream for job: " + jobId, e); } }
try { CloudBlobClient blobClient = AzureStorageUtils.createCloudBlobClient(context, getLogger(), flowFile); CloudBlobContainer container = blobClient.getContainerReference(containerName); final CloudBlob blob = container.getBlockBlobReference(blobPath); blob.download(os, null, null, operationContext); } catch (StorageException e) { storedException.set(e); long length = blob.getProperties().getLength(); attributes.put("azure.length", String.valueOf(length)); session.getProvenanceReporter().fetch(flowFile, blob.getSnapshotQualifiedUri().toString(), transferMillis); } catch (IllegalArgumentException | URISyntaxException | StorageException | ProcessException e) { if (e instanceof ProcessException && storedException.get() == null) {
try { CloudBlobClient blobClient = AzureStorageUtils.createCloudBlobClient(context, getLogger(), flowFile); CloudBlobContainer container = blobClient.getContainerReference(containerName); CloudBlob blob = container.getBlockBlobReference(blobPath); blob.upload(in, length, null, null, operationContext); BlobProperties properties = blob.getProperties(); attributes.put("azure.container", containerName); attributes.put("azure.primaryUri", blob.getSnapshotQualifiedUri().toString()); attributes.put("azure.etag", properties.getEtag()); attributes.put("azure.length", String.valueOf(length)); attributes.put("azure.timestamp", String.valueOf(properties.getLastModified())); } catch (StorageException | URISyntaxException e) { storedException.set(e); session.getProvenanceReporter().send(flowFile, blob.getSnapshotQualifiedUri().toString(), transferMillis);
@Override public InputStream getStream(UUID jobId, String key) { try { CloudBlobContainer reference = blobClient.getContainerReference(BLOB_CONTAINER); CloudBlockBlob blob = reference.getBlockBlobReference(createRowKey(jobId, key)); return blob.openInputStream(); } catch (StorageException | URISyntaxException e) { throw new MicrosoftStorageException("Error returning stream for job: " + jobId, e); } }
CloudBlobContainer container = blobClient.getContainerReference(containerName); CloudBlob blob = container.getBlockBlobReference(blobPath); blob.deleteIfExists(DeleteSnapshotsOption.valueOf(deleteSnapshotOptions), null, null, operationContext); session.transfer(flowFile, REL_SUCCESS); session.getProvenanceReporter().send(flowFile, blob.getSnapshotQualifiedUri().toString(), transferMillis); } catch ( StorageException | URISyntaxException e) { getLogger().error("Failed to delete the specified blob {} from Azure Storage. Routing to failure", new Object[]{blobPath}, e);
public void uploadBlob(final File file, final String containerName, final String blobPath) throws IOException, StorageException, URISyntaxException { CloudBlobContainer container = getCloudBlobContainer(containerName); try (FileInputStream stream = new FileInputStream(file)) { container.getBlockBlobReference(blobPath).upload(stream, file.length()); } }
public List<String> emptyCloudBlobDirectory(final String containerName, final String virtualDirPath) throws StorageException, URISyntaxException { List<String> deletedFiles = new ArrayList<>(); CloudBlobContainer container = getCloudBlobContainer(containerName); for (ListBlobItem blobItem : container.listBlobs(virtualDirPath, true, null, null, null)) { CloudBlob cloudBlob = (CloudBlob) blobItem; log.info("Removing file[%s] from Azure.", cloudBlob.getName()); if (cloudBlob.deleteIfExists()) { deletedFiles.add(cloudBlob.getName()); } } if (deletedFiles.isEmpty()) { log.warn("No files were deleted on the following Azure path: [%s]", virtualDirPath); } return deletedFiles; }
public InputStream getBlobInputStream(final String containerName, final String blobPath) throws URISyntaxException, StorageException { CloudBlobContainer container = getCloudBlobContainer(containerName); return container.getBlockBlobReference(blobPath).openInputStream(); }
private static CloudBlobContainer createContainer(String delimiter) throws URISyntaxException, StorageException { CloudBlobClient client = BlobTestHelper.createCloudBlobClient(); client.setDirectoryDelimiter(delimiter); String name = BlobTestHelper.generateRandomContainerName(); CloudBlobContainer container = client.getContainerReference(name); container.create(); return container; } }
public static CloudBlockBlob defiddler(CloudBlockBlob blob) throws URISyntaxException, StorageException { URI oldUri = blob.getUri(); URI newUri = defiddler(oldUri); if (newUri != oldUri) { CloudBlockBlob newBlob = new CloudBlockBlob(newUri, blob.getServiceClient().getCredentials()); newBlob.setSnapshotID(blob.snapshotID); return newBlob; } else { return blob; } }
public static CloudPageBlob defiddler(CloudPageBlob blob) throws URISyntaxException, StorageException { URI oldUri = blob.getUri(); URI newUri = defiddler(oldUri); if (newUri != oldUri) { CloudPageBlob newBlob = new CloudPageBlob(newUri, blob.getServiceClient().getCredentials()); newBlob.setSnapshotID(blob.snapshotID); return newBlob; } else { return blob; } }
public static CloudAppendBlob defiddler(CloudAppendBlob blob) throws URISyntaxException, StorageException { URI oldUri = blob.getUri(); URI newUri = defiddler(oldUri); if (newUri != oldUri) { CloudAppendBlob newBlob = new CloudAppendBlob(newUri, blob.getServiceClient().getCredentials()); newBlob.setSnapshotID(blob.snapshotID); return newBlob; } else { return blob; } }
String storageConnectionString = String.format(AzureStorageUtils.FORMAT_BASE_URI, accountName); StorageCredentials creds = new StorageCredentialsSharedAccessSignature(sasToken); cloudBlobClient = new CloudBlobClient(new URI(storageConnectionString), creds); } else { String blobConnString = String.format(AzureStorageUtils.FORMAT_BLOB_CONNECTION_STRING, accountName, accountKey);
private static void testBlobAccess(CloudBlobContainer container, BlobType type, EnumSet<SharedAccessBlobPermissions> permissions, SharedAccessBlobHeaders headers) throws StorageException, IOException, URISyntaxException, InvalidKeyException { CloudBlob blob = BlobTestHelper.uploadNewBlob(container, type, SR.BLOB, 512, null); SharedAccessBlobPolicy policy = createSharedAccessPolicy(permissions, 3600); String sasToken = blob.generateSharedAccessSignature(policy, headers, null); testAccess(sasToken, permissions, headers, null, blob); }
public void init() { try { String endpoint = String.format(ENDPOINT_TEMPLATE, configuration.getAccountName()); CloudStorageAccount cosmosAccount = CloudStorageAccount.parse( String.format( COSMOS_CONNECTION_TEMPLATE, configuration.getAccountName(), configuration.getAccountKey(), endpoint)); tableClient = cosmosAccount.createCloudTableClient(); // Create the tables if the do not exist tableClient.getTableReference(JOB_TABLE).createIfNotExists(); tableClient.getTableReference(JOB_DATA_TABLE).createIfNotExists(); CloudStorageAccount blobAccount = CloudStorageAccount.parse( String.format( BLOB_CONNECTION_TEMPLATE, configuration.getAccountName(), configuration.getBlobKey())); blobClient = blobAccount.createCloudBlobClient(); blobClient.getContainerReference(BLOB_CONTAINER).createIfNotExists(); } catch (StorageException | URISyntaxException | InvalidKeyException e) { throw new MicrosoftStorageException(e); } }