[
https://issues.apache.org/jira/browse/JCLOUDS-1557?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17947855#comment-17947855
]
Xavier BOURGOUIN commented on JCLOUDS-1557:
-------------------------------------------
Many thanks [~gaul]!
In the meanwhile I may have found a way to have it working directly with
jclouds, forcing to use authType=AzureSharedKey (instead of the default
SharedKeyLite).
For anyone interested that somehow lands here, here's a working
jclouds.properties for Azurite that works with recent jclouds (2.6.2):
{code:java}
jclouds.provider = azureblob
jclouds.endpoint=http://127.0.0.1:10000/devstoreaccount1
jclouds.identity=devstoreaccount1
jclouds.credential=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==
# Force not using SharedKeyLite, at least until it is supported in Azurite -
See https://github.com/Azure/Azurite/pull/1752
jclouds.azureblob.auth=azureSharedKey
{code}
See:
- open/unmerged contrib on Azurite to support SharedKeyLite:
https://github.com/Azure/Azurite/pull/1752
- jclouds contrib that added SharedKey support to workaround the lack of
support of SharedKeyLite (for that exact purpose):
https://github.com/apache/jclouds/commit/a2628f9cbf46519f88600883b23e8819b18e3724
[~gaul] I don't know if you think this should be worth updating jclouds Azure
documentation with it (for example here:
https://jclouds.apache.org/guides/azure-storage/ under a dedicated section
"Azurite/ Azure Local storage emulator"), at least this was the first place I
had been looking for it before going down the rabbit hole on that ...
Thanks!
> Azure Blob Storage: Support for Local Endpoints (eg Azurite)
> ------------------------------------------------------------
>
> Key: JCLOUDS-1557
> URL: https://issues.apache.org/jira/browse/JCLOUDS-1557
> Project: jclouds
> Issue Type: Improvement
> Components: jclouds-blobstore
> Reporter: Dave Sloan
> Assignee: Andrew Gaul
> Priority: Major
> Labels: azureblob
> Fix For: 2.3.0
>
> Time Spent: 2h 40m
> Remaining Estimate: 0h
>
> Azurite provides a local Azure-compatible endpoint for purposes of testing
> without requiring network traffic or incurring costs on Azure.
> Currently while it is possible to define a custom endpoint this is not
> respected.
> In both
> [https://github.com/apache/jclouds/blob/ba1504b38e725c45db304767ac76b2be4b71fd0d/providers/azureblob/src/main/java/org/jclouds/azureblob/blobstore/AzureBlobRequestSigner.java#L66]
> [https://github.com/apache/jclouds/blob/ca5190636a5fc1ffe48d0d6b8087ad160c0b7d80/providers/azureblob/src/main/java/org/jclouds/azure/storage/filters/SharedKeyLiteAuthentication.java#L95]
>
> The `storageUrl` is hard-coded to the Azure location
> {code:java}
> this.storageUrl = URI.create("https://" + creds.get().identity +
> ".blob.core.windows.net/");
> {code}
>
> This should be made to respect a custom endpoint if configured, e.g.
>
> {code:java}
> BlobStoreContext context = ContextBuilder.newBuilder("azureblob")
> .credentials(storageAccountName, storageAccountKey)
> .endpoint("http://localhost:10000")
> .buildView(BlobStoreContext.class);
> {code}
> In addition, similar to the AWS S3 connector (`enableVirtualHostBuckets`), a
> configurable property should be provided to change the format of the URLs
> used by Azure to include the storage account name in the path.
>
>
> *Azure endpoint URL format (storage account in hostname)*
> [https://devstoreaccount1.blob.core.windows.net/]
>
> *Azurite endpoint URL format (**storage account* *in path)*
> [http://localhost:10000/devstoreaccount1/]
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)