我一直在try 通过Golang SDK上传到Cloudinary.但有时它似乎在几次请求后失败(有时它起作用,其他时候不起作用).

我在本地主机(Windows)上运行这个应用程序,没有VPN.

错误消息:

"https://api.cloudinary.com/v1_1/dd6mdlpgj/auto/upload":拨号tcp:查找api.cloudinary.com:没有这样的主机

type cloudinaryStorageRepository struct {
    cld *cloudinary.Cloudinary
}

func NewCloudinaryStorageRepository(cloudName string, apiKey string, apiSecret string) domain.StorageRepository {
    cld, err := cloudinary.NewFromParams(cloudName, apiKey, apiSecret)
    if err != nil {
        panic(err)
    }
    return &cloudinaryStorageRepository{cld}
}

func (c *cloudinaryStorageRepository) Upload(ctx context.Context, storage *domain.Storage) (string, error) {
    file, err := storage.File.Open()
    defer func(file multipart.File) {
        err := file.Close()
        if err != nil {
            logrus.Error(err)
        }
    }(file)

    if err != nil {
        logrus.Error(err)
        return "", err
    }

    uploaded, err := c.cld.Upload.Upload(ctx, file, uploader.UploadParams{
        Folder:   storage.Folder,
        PublicID: storage.Name,
    })
    if err != nil {
        logrus.Error(err)
        return "", err
    }
    return uploaded.SecureURL, nil
}

推荐答案

如果我理解正确的话,您可以try 在您的计算机上重置您的DNS,或者使用另一台计算机来运行代码,因为这可能是您的本地主机的错误配置.

Go相关问答推荐

消费者在NAT中是如何实现的

在GO中使用泛型类型 struct 实现接口方法

Go 中的 protobuf FieldMask 解组

Golang校验器包:重命名字段错误处理

从给定顶点查找图形中所有闭合路径的算法

替换字符串中的最后一个字符

gopacket:IP-in-IP 数据包上的解码层

如何以干净的方式在中间件中注入 repo 或服务?

加密/椭圆:try 在无效点上进行操作

如何使用 go-git 将特定分支推送到远程

如何在切片增长时自动将切片的新元素添加到函数参数

速率限制特定端点

如何在测试中使用自定义标志(使用`testify/suite`)

Ginkgo/Gomega panic 测试失败

Go Fyne 禁用 HSplit 调整大小?

使用正则表达式拆分具有相同标题的数据块

在 Go 中,为什么 exec.Command() 失败但 os.StartProcess() 成功启动winget.exe?

Go:如何通过 GIN-Router 从 AWS S3 将文件作为二进制流发送到浏览器?

如何使用通用字段初始化匿名struct数组

如何在 Prometheus 中正确检测区域和环境信息?