我已将单个文件 (BlockBlob) 上传到 Azure BlobStorage 中的容器
这是路径:https://myStorageName.blob.core.windows.net/myContainerName/myFolder.Name/myFileName.json
我想将此文件加载到 Azure Sql 数据库中的表中
如果我为该文件创建 SAS,一切都会正常进行。但是,我无法生成可以访问容器内多个文件的单个 SAS。
这是有效的代码:
CREATE DATABASE SCOPED CREDENTIAL TemporaryBlobSCredential
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = 'sp=......................'
CREATE EXTERNAL DATA SOURCE TemporaryBlobDataSource
WITH ( TYPE = BLOB_STORAGE,
LOCATION = 'https://<myStorageName>.blob.core.windows.net/<myContainerName>',
CREDENTIAL= TemporaryBlobSCredential);
create table <tableName>
(JsonData varchar(max))
BULK INSERT <tableName>
FROM '<myFolder.Name>/<myFileName>.json'
WITH (DATA_SOURCE = 'TemporaryBlobDataSource');
如果我生成具有所有权限的 SAS (SECRET = '?sv=......'),它将无法工作:
我应该使用不同的东西吗? 它真的有效吗?
最佳答案
这个document说:
Warning
The SAS key value might begin with a '?' (question mark). When you use the SAS key, you must remove the leading '?'. Otherwise your efforts might be blocked.
我注意到您的工作代码中没有“?”,但您的 SAS token 中有“?”,但它不起作用。你能仔细检查一下这个微小的差异不是问题吗?
关于azure - 无法创建从 Azure Blob 存储容器到 Azure Sql 数据库超大规模的外部数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63602925/