文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

如何在Golang中为Azure SDK指定x509证书

2024-04-04 23:55

关注

你在学习Golang相关的知识吗?本文《如何在Golang中为Azure SDK指定x509证书》,主要介绍的内容就涉及到,如果你想提升自己的开发能力,就不要错过这篇文章,大家要知道编程理论基础和实战操作都是不可或缺的哦!

问题内容

我正在尝试连接以使用 azure sdk for golang 将文件从在线容器下载到我的设备,并使用 azure 提供的连接字符串进行连接。对于上下文来说,这是在嵌入式 linux 版本上运行的

我有两个问题,首先如何将特定证书传递给azure sdk以用于连接,因为目前当我连接时,我遇到了这个问题

get "https://transaction.blob.core.windows.net/transactions?comp=list&restype=container": x509: 由未知权威机构签名的证书

或者如果失败,我如何生成正确的证书并将其放入 /etc/ssl 中?据我所知,我认为这就是 go 寻找证书的地方。

还有第二个问题,如果我的文件夹结构类似于 /transaction/my-libs/images/1.0.0/libimage.bin(其中事务是我的),我应该使用 azure sdk for go 的什么函数从在线 blob 下载blob 容器。

func testConnection(){
    Println("TESTING CONNECTION")

    connStr := "..." // actual connection string hidden 

    serviceClient, err := azblob.NewServiceClientFromConnectionString(connStr, nil)

    // crashes here <------------

    //ctx := context.Background()
    //container := serviceClient.NewContainerClient("transactions")
    //
    //_, err = container.Create(ctx, nil)
    //
    //blockBlob := container.NewBlockBlobClient("erebor-libraries")
    //_, err = blockBlob.Download(ctx, nil)


    //Open a buffer, reader, and then download!
    downloadedData := &bytes.Buffer{}
    reader := get.Body(RetryReaderOptions{}) // RetryReaderOptions has a lot of in-depth tuning abilities, but for the sake of simplicity, we'll omit those here.
    _, err = downloadedData.ReadFrom(reader)
    err = reader.Close()
    if data != downloadedData.String() {
        err := errors.New("downloaded data doesn't match uploaded data")
        if err != nil {
            return
        }
    }

    pager := container.ListBlobsFlat(nil)
    for pager.NextPage(ctx) {
        resp := pager.PageResponse()

        for _, v := range resp.ContainerListBlobFlatSegmentResult.Segment.BlobItems {
            fmt.Println(*v.Name)
        
    }

}


正确答案


• 您可以使用以下 azure sdk for go 命令将特定证书传递到 azure sdk,以通过为其创建服务主体来连接到其他 azure 资源:-

‘ type ClientCertificateConfig struct {
  ClientID            string
  CertificatePath     string
  CertificatePassword string
  TenantID            string
  AuxTenants          []string
  AADEndpoint         string
  Resource            string
 } ‘

有关客户端证书的创建及其使用的更多信息,请参阅下面的文档链接了解更多详细信息:- https://pkg.go.dev/github.com/Azure/go-autorest/autorest/azure/auth#ClientCertificateConfig

此外,即使您的文件夹结构是'/transaction/my-libs/images/1.0.0/libimage.bin',但 blob url 与 blob 中提到的文件夹层次结构是唯一的url,因此,当连接到 azure 存储帐户以下载 blob 时,请以单引号表示法提及 url,以便明确 blob 路径。

请参阅下面的示例代码,通过 azure sdk for go 下载 blob:-

https://pkg.go.dev/github.com/Azure/azure-sdk-for-go/sdk/storage/azblob#example-package

https://pkg.go.dev/github.com/Azure/azure-storage-blob-go/azblob#pkg-examples

本篇关于《如何在Golang中为Azure SDK指定x509证书》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注编程网公众号!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯