使用AzCopy从DigitalOcean复制到Azure存储时遇路径扫描错误
解决Azcopy从DigitalOcean Spaces复制到Azure存储的路径扫描错误
错误原因
Azcopy误将DigitalOcean Spaces的HTTPS URL识别为本地文件路径,导致尝试扫描/home/mypc/https:/myspace.fra1.digitaloceanspaces.com这个不存在的本地目录。这是因为直接使用HTTPS URL时,Azcopy无法自动识别这是S3兼容的对象存储服务。
解决步骤
1. 获取DigitalOcean认证密钥
在DigitalOcean控制台的「API」页面生成Access Key和Secret Key,确保密钥拥有Spaces的读取权限。
2. 使用正确的命令格式
因为DigitalOcean Spaces兼容S3协议,Azcopy支持通过S3协议访问,推荐使用以下两种方式:
方式一:使用S3协议前缀
先设置环境变量存储Access Key(Linux/macOS):
export AZCOPY_S3_ACCESS_KEY="你的DigitalOcean Access Key"
然后执行复制命令:
sudo azcopy copy "s3://myspace.fra1.digitaloceanspaces.com" "https://myspace.blob.core.windows.net/myspace" --source-key="你的DigitalOcean Secret Key" --recursive
方式二:指定传输类型
如果坚持使用HTTPS URL,需要通过--from-to参数明确指定源为S3兼容存储,目标为Azure Blob:
sudo AZCOPY_S3_ACCESS_KEY="你的DigitalOcean Access Key" azcopy copy "https://myspace.fra1.digitaloceanspaces.com" "https://myspace.blob.core.windows.net/myspace" --source-key="你的DigitalOcean Secret Key" --from-to=S3Blob --recursive
额外注意事项
- 若只需复制特定目录下的文件,可在源路径后添加目录前缀,例如
s3://myspace.fra1.digitaloceanspaces.com/docs/ - 确保Azure端的Azure AD认证有效(当前日志显示目标端认证已正常进行)
- 检查密钥权限,避免因权限不足导致文件读取失败
内容的提问来源于stack exchange,提问作者Lutaaya Huzaifah Idris
相关产品推荐
相关产品推荐

