我正在try 通过Golang应用程序将文件从AWS S3存储桶复制到Azure Blob存储中.

我通过Azure PowerShell使用了Azcopy命令,它起作用了.

https://learn.microsoft.com/en-us/azure/storage/common/storage-use-azcopy-s3

我正在try 在Golang应用程序中使用它. 我在Azure SDK中搜索了Azcopy个等同的东西.

https://github.com/Azure/azure-sdk-for-go/tree/main/sdk/storage/azblob

我不想下载文件然后上传他以减少传输时间和成本.

有人能帮帮忙吗?

推荐答案

我还没有用过围棋,所以我不能给你确切的代码,但这是你需要做的:

  1. 在S3中创建对象的预签名URL.请确保该URL具有Read个权限.
  2. 使用复制Blob功能将对象从S3复制到Azure Blob存储.您希望使用的方法是StartCopyFromURL.

请注意,复制BLOB是一个异步的服务器端操作,因此请保持预签名URL的过期时间足够长,以便复制操作完成.你可以在这里阅读更多关于复制操作的内容:https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob?tabs=microsoft-entra-id.

Go相关问答推荐

Makefile:现有文件上没有这样的文件或目录,不加载环境变量

Go:嵌入类型不能是类型参数""

Golang应用程序:所请求的资源上不存在HTTP-Control-Allow-Origin标头

GO:如何指定类型约束,使S方法的参数类型与接收方的参数类型相同

我怎样才能改进这个嵌套逻辑以使其正常工作并提高性能

如何将Golang测试用例的测试覆盖率值与特定阈值进行比较

有没有办法在 Golang 中使用带有 go-simple-mail lib 的代理?

golang gin 获取 cookie json

上传图片失败,出现错误dial tcp: lookup api.cloudinary.com: no such host

不能使用 mockDB(*MockDB 类型的变量)作为 struct 文字中的 *gorm.DB 值

处理程序后访问 HTTP 请求上下文

同时调用应该只获取一次数据

为什么我不能使用来自 gocloak 中 Login() 的访问令牌在 KeyCloak 中创建新客户端?

Golang - 使用正则表达式提取链接

HCL 解码:具有多个标签的块

如何在测试中传递用户名和密码等参数

测试包外文件时的 Golang 测试覆盖率

GOLANG 如何使用 http.FileServer 从模板目录加载某个 html 文件

正则表达式处理数字签名的多个条目

如何将实际上是类型为 reflect.Int32 的类型切片的 interface{} 转换为 int32 的切片?