django 文件上传在新版本的 azure blob 中不起作用
django file upload is not working in azure blob with new version
更新 azure blob 版本后,不会安装所有内容。它将在 blob 中安装特定版本的命名空间。所以我安装了以下软件包。
azure-common==1.1.25
azure-core==1.8.1
azure-nspkg==3.0.2
azure-storage-blob==12.4.0
我无法上传 blob。 SO 和其他平台中的所有引用都是针对旧版本的。对于新版本,没有参考。我得到的错误是
from azure.storage.blob import BlobPermissions, ContentSettings
ImportError: cannot import name 'BlobPermissions' from 'azure.storage.blob'
如果我手动转到该路径并从导入编译中删除 BlobPermissions 就会发生。但是上传没有发生,上传时间我收到这个错误
connection_string=self.connection_string)
endpoint_suffix=self.endpoint_suffix)
TypeError: __init__() got an unexpected keyword argument 'token_credential'
任何人都可以帮助我使用新版本的 django azure 上传的正确文档。我在SO中得到的参考文献是手动上传的方式。
我在 SO 中得到的一些参考:
ImportError: cannot import name 'BlobPermissions' from 'azure.storage.blob'
BlobPermissions
用于旧版本。对于新版本,它已替换为 BlobSasPermissions
。
似乎 django.core.files.storage
不受 latest version(3.1). So you could use the older version(e.g. 2.1) to upload file using django, or just use azure-sdk 支持。
旧版本:
from django.core.files.storage import default_storage
f = open('file.csv', 'rb')
default_storage.save(path, f)
使用 Azure SDK:
from azure.storage.blob import BlobClient
blob = BlobClient.from_connection_string(conn_str="<connection_string>", container_name="my_container", blob_name="my_blob")
with open("file.csv", "rb") as data:
blob.upload_blob(data)
更新 azure blob 版本后,不会安装所有内容。它将在 blob 中安装特定版本的命名空间。所以我安装了以下软件包。
azure-common==1.1.25
azure-core==1.8.1
azure-nspkg==3.0.2
azure-storage-blob==12.4.0
我无法上传 blob。 SO 和其他平台中的所有引用都是针对旧版本的。对于新版本,没有参考。我得到的错误是
from azure.storage.blob import BlobPermissions, ContentSettings
ImportError: cannot import name 'BlobPermissions' from 'azure.storage.blob'
如果我手动转到该路径并从导入编译中删除 BlobPermissions 就会发生。但是上传没有发生,上传时间我收到这个错误
connection_string=self.connection_string)
endpoint_suffix=self.endpoint_suffix)
TypeError: __init__() got an unexpected keyword argument 'token_credential'
任何人都可以帮助我使用新版本的 django azure 上传的正确文档。我在SO中得到的参考文献是手动上传的方式。
我在 SO 中得到的一些参考:
ImportError: cannot import name 'BlobPermissions' from 'azure.storage.blob'
BlobPermissions
用于旧版本。对于新版本,它已替换为 BlobSasPermissions
。
似乎 django.core.files.storage
不受 latest version(3.1). So you could use the older version(e.g. 2.1) to upload file using django, or just use azure-sdk 支持。
旧版本:
from django.core.files.storage import default_storage
f = open('file.csv', 'rb')
default_storage.save(path, f)
使用 Azure SDK:
from azure.storage.blob import BlobClient
blob = BlobClient.from_connection_string(conn_str="<connection_string>", container_name="my_container", blob_name="my_blob")
with open("file.csv", "rb") as data:
blob.upload_blob(data)