使用AzureStor与AzureRMR API时出现base64_decode错误求助
解决AzureStor操作中openssl::base64_decode认证错误问题
你遇到的openssl::base64_decode: check failed: (is.character(text))错误,本质是AzureStor在解析认证令牌时出现异常,和AzureRMR登录对象的传递方式有关,以下是几种可行的解决方法:
改用AzureStor内置的认证方式
AzureStor提供了独立的认证接口,避免和AzureRMR的对象交互出现兼容性问题:# 直接创建存储账户对象(会自动弹出登录窗口) storage_account <- create_storage_account("accountname") container <- storage_container(storage_account, "container") storage_upload(container, src = file_path, dest = folder_path)或者手动从AzureRMR获取存储服务专用的令牌:
# 获取针对Azure存储服务的访问令牌 token <- az$get_token("https://storage.azure.com/") storage_account <- storage_endpoint("https://accountname.blob.core.windows.net", token = token) container <- storage_container(storage_account, "container") storage_upload(container, src = file_path, dest = folder_path)检查并更新包版本
旧版本的AzureRMR和AzureStor可能存在认证交互bug,先确认版本:packageVersion("AzureRMR") packageVersion("AzureStor")如果版本不是最新,执行更新:
update.packages(c("AzureRMR", "AzureStor"))验证资源信息与权限
- 确认存储账户名称(
accountname)是全小写,且容器名称(container)拼写完全正确,Azure存储资源名称对大小写敏感。 - 确保登录的Azure账号拥有该容器的Blob数据参与者或更高权限,权限不足可能导致令牌解析异常。
- 确认存储账户名称(
清理认证缓存
缓存的旧令牌可能干扰新会话,清理后重新登录:AzureRMR::clean_token_cache() az <- AzureRMR::create_azure_login()
内容的提问来源于stack exchange,提问作者bobryash
相关产品推荐
相关产品推荐

