[
https://issues.apache.org/jira/browse/LIBCLOUD-993?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Clemens Wolff updated LIBCLOUD-993:
-----------------------------------
Description:
Running the
[examples|http://libcloud.readthedocs.io/en/latest/storage/examples.html] in
the documentation for object upload via streams fails when using the Azure Blob
Storage driver.
Setup:
{code:java}
python3 -m venv venv
venv/bin/pip install apache-libcloud==2.3.0{code}
Minimal stand-alone code snippet to reproduce:
{code:java}
import uuid
import os
from libcloud.storage.types import Provider
from libcloud.storage.providers import get_driver
key = '' # setme
secret = '' # setme
container_name = 'libcloudtest-%s' % uuid.uuid4()
file_path = __file__
object_name = os.path.basename(__file__)
cls = get_driver(Provider.AZURE_BLOBS)
driver = cls(key, secret)
container = driver.create_container(container_name)
with open(file_path, 'rb') as fobj:
driver.upload_object_via_stream(iterator=fobj,
container=container,
object_name=object_name)
{code}
Stack-trace:
{noformat}
Traceback (most recent call last):
File "./azure_upload.py", line 24, in <module>
driver.upload_object_via_stream(iterator=fobj, container=container,
object_name=object_name)
File "/c/Repos/libcloud/libcloud/storage/drivers/azure_blobs.py", line 821, in
upload_object_via_stream
stream=iterator)
File "/c/Repos/libcloud/libcloud/storage/drivers/azure_blobs.py", line 924, in
_put_object
driver=self)
libcloud.common.types.LibcloudError: <LibcloudError in
<libcloud.storage.drivers.azure_blobs.AzureBlobsStorageDriver object at
0x7ff3e2132400> 'Unexpected status code, status_code=403'>{noformat}
Note that the culprit is the upload_object_via_stream method. Running the same
snippet with upload_object instead of the stream method works:
{code:java}
import uuid
import os
from libcloud.storage.types import Provider
from libcloud.storage.providers import get_driver
key = '' # setme
secret = '' # setme
container_name = 'libcloudtest-%s' % uuid.uuid4()
file_path = __file__
object_name = os.path.basename(__file__)
cls = get_driver(Provider.AZURE_BLOBS)
driver = cls(key, secret)
container = driver.create_container(container_name)
driver.upload_object(file_path=file_path,
container=container,
object_name=object_name)
{code}
If you need Azure credentials to reproduce or debug this issue, feel free to
reach out and I can provide them.
was:
Running the
[examples|http://libcloud.readthedocs.io/en/latest/storage/examples.html] in
the documentation for object upload via streams fails when using the Azure Blob
Storage driver.
Setup:
{code:java}
python3 -m venv venv
venv/bin/pip install apache-libcloud==2.3.0{code}
Minimal stand-alone code snippet to reproduce:
{code:java}
import uuid
import os
from libcloud.storage.types import Provider
from libcloud.storage.providers import get_driver
key = '' # setme
secret = '' # setme
container_name = 'libcloudtest-%s' % uuid.uuid4()
file_path = __file__
object_name = os.path.basename(__file__)
cls = get_driver(Provider.AZURE_BLOBS)
driver = cls(key, secret)
container = driver.create_container(container_name)
with open(file_path, 'rb') as fobj:
driver.upload_object_via_stream(iterator=fobj,
container=container,
object_name=object_name)
{code}
Stack-trace:
{noformat}
Traceback (most recent call last):
File "./azure_upload.py", line 24, in <module>
driver.upload_object_via_stream(iterator=fobj, container=container,
object_name=object_name)
File "/c/Repos/libcloud/libcloud/storage/drivers/azure_blobs.py", line 821, in
upload_object_via_stream
stream=iterator)
File "/c/Repos/libcloud/libcloud/storage/drivers/azure_blobs.py", line 924, in
_put_object
driver=self)
libcloud.common.types.LibcloudError: <LibcloudError in
<libcloud.storage.drivers.azure_blobs.AzureBlobsStorageDriver object at
0x7ff3e2132400> 'Unexpected status code, status_code=403'>{noformat}
Note that the culprit is the upload_object_via_stream method. Running the same
snippet with upload_object instead of the stream method works:
{code:java}
import uuid
import os
from libcloud.storage.types import Provider
from libcloud.storage.providers import get_driver
key = '' # setme
secret = '' # setme
container_name = 'libcloudtest-%s' % uuid.uuid4()
file_path = __file__
object_name = os.path.basename(__file__)
cls = get_driver(Provider.AZURE_BLOBS)
driver = cls(key, secret)
container = driver.create_container(container_name)
driver.upload_object(file_path=file_path,
container=container,
object_name=object_name)
{code}
> upload_object_via_stream crashes for Azure driver
> -------------------------------------------------
>
> Key: LIBCLOUD-993
> URL: https://issues.apache.org/jira/browse/LIBCLOUD-993
> Project: Libcloud
> Issue Type: Bug
> Components: Storage
> Reporter: Clemens Wolff
> Priority: Major
>
> Running the
> [examples|http://libcloud.readthedocs.io/en/latest/storage/examples.html] in
> the documentation for object upload via streams fails when using the Azure
> Blob Storage driver.
> Setup:
> {code:java}
> python3 -m venv venv
> venv/bin/pip install apache-libcloud==2.3.0{code}
> Minimal stand-alone code snippet to reproduce:
> {code:java}
> import uuid
> import os
> from libcloud.storage.types import Provider
> from libcloud.storage.providers import get_driver
> key = '' # setme
> secret = '' # setme
> container_name = 'libcloudtest-%s' % uuid.uuid4()
> file_path = __file__
> object_name = os.path.basename(__file__)
> cls = get_driver(Provider.AZURE_BLOBS)
> driver = cls(key, secret)
> container = driver.create_container(container_name)
> with open(file_path, 'rb') as fobj:
> driver.upload_object_via_stream(iterator=fobj,
> container=container,
> object_name=object_name)
> {code}
> Stack-trace:
> {noformat}
> Traceback (most recent call last):
> File "./azure_upload.py", line 24, in <module>
> driver.upload_object_via_stream(iterator=fobj, container=container,
> object_name=object_name)
> File "/c/Repos/libcloud/libcloud/storage/drivers/azure_blobs.py", line 821,
> in upload_object_via_stream
> stream=iterator)
> File "/c/Repos/libcloud/libcloud/storage/drivers/azure_blobs.py", line 924,
> in _put_object
> driver=self)
> libcloud.common.types.LibcloudError: <LibcloudError in
> <libcloud.storage.drivers.azure_blobs.AzureBlobsStorageDriver object at
> 0x7ff3e2132400> 'Unexpected status code, status_code=403'>{noformat}
> Note that the culprit is the upload_object_via_stream method. Running the
> same snippet with upload_object instead of the stream method works:
> {code:java}
> import uuid
> import os
> from libcloud.storage.types import Provider
> from libcloud.storage.providers import get_driver
> key = '' # setme
> secret = '' # setme
> container_name = 'libcloudtest-%s' % uuid.uuid4()
> file_path = __file__
> object_name = os.path.basename(__file__)
> cls = get_driver(Provider.AZURE_BLOBS)
> driver = cls(key, secret)
> container = driver.create_container(container_name)
> driver.upload_object(file_path=file_path,
> container=container,
> object_name=object_name)
> {code}
> If you need Azure credentials to reproduce or debug this issue, feel free to
> reach out and I can provide them.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)