Home >Backend Development >Golang >Practical tips: Use Go language to quickly integrate Qiniu Cloud interface

Practical tips: Use Go language to quickly integrate Qiniu Cloud interface

王林
王林Original
2023-07-06 16:57:071085browse

Practical tips: Use Go language to quickly integrate Qiniu Cloud interface

Introduction:
During the development process, we often need to use cloud storage to store and manage a large number of files. Qiniu Cloud is a leading cloud storage service provider, providing stable, efficient and secure cloud storage services. This article will introduce how to use Go language to quickly integrate Qiniu Cloud interface and give code examples.

1. Install SDK
Before we begin, we need to install the Qiniu Cloud SDK. Install the Go language SDK through the following command:

go get -u github.com/qiniu/api.v7

2. Configure Qiniu Cloud key and configuration
Before using Qiniu Cloud, we need to register an account on the Qiniu Cloud official website and create a Bucket. Then, we need to obtain the AccessKey and SecretKey of Qiniu Cloud and configure the corresponding file storage space.

We put AccessKey and SecretKey in a configuration file. Assuming that the file is config.ini, it can be configured in the following format:

[Qiniu]
AccessKey = YOUR_ACCESS_KEY
SecretKey = YOUR_SECRET_KEY
Bucket = YOUR_BUCKET
Domain = YOUR_DOMAIN

3. Initialize Qiniu Cloud Client
Next, we need to initialize a Qiniu Cloud client.

package main

import (
    "fmt"
    "github.com/qiniu/api.v7/auth/qbox"
    "github.com/qiniu/api.v7/storage"
    "gopkg.in/ini.v1"
    "log"
)

var (
    accessKey    string
    secretKey    string
    bucket       string
    domain       string
    putPolicy    storage.PutPolicy
    mac          *qbox.Mac
    uploader     *storage.FormUploader
    cfg          *storage.Config
    client       *storage.Client
)

func init() {
    cfg, _ = storage.NewConfigFromJSON([]byte(`{"Zone":"ZoneZoneAuto"}`))
    client, _ = storage.NewClient(cfg)
}

func main() {
    // 读取配置文件
    cfg, err := ini.Load("config.ini")
    if err != nil {
        log.Fatalf("读取配置文件错误:%v
", err)
        return
    }

    // 获取配置项
    accessKey = cfg.Section("Qiniu").Key("AccessKey").String()
    secretKey = cfg.Section("Qiniu").Key("SecretKey").String()
    bucket = cfg.Section("Qiniu").Key("Bucket").String()
    domain = cfg.Section("Qiniu").Key("Domain").String()
    putPolicy = storage.PutPolicy{
        Scope: bucket,
    }

    // 初始化Mac
    mac = qbox.NewMac(accessKey, secretKey)

    // 初始化uploader
    uploader = storage.NewFormUploader(client)
}

In the above code, we used qiniu's auth/qbox and storage packages, and initialized some global variables, including Qiniu Cloud's AccessKey, SecretKey, Bucket, Domain and corresponding interface objects.

4. Upload files
Below we will show how to upload files to Qiniu Cloud.

func uploadFile(localFile, key string) error {
    ret := storage.PutRet{}
    err := uploader.PutFile(nil, &ret, putPolicy.UploadToken(mac), key, localFilePath, nil)
    if err != nil {
        return fmt.Errorf("上传文件错误:%v", err)
    }

    log.Printf("文件上传成功,文件名为:%s,ETag:%s
", ret.Key, ret.Hash)

    return nil
}

func main() {
    // ...省略其他代码...

    localFilePath := "test.jpg"
    key := "mytest.jpg"

    err := uploadFile(localFilePath, key)
    if err != nil {
        log.Fatalf("上传文件失败:%v
", err)
        return
    }
}

In the above code, we defined a function named uploadFile to upload local files to Qiniu Cloud storage space. In the main function, we specify the path of the local file and the file name to be uploaded to Qiniu Cloud.

Summary:
This article introduces how to use Go language to quickly integrate Qiniu Cloud interface, and gives relevant code examples. Through these examples, we can easily use Qiniu Cloud's cloud storage service in our own projects. I hope this article can be helpful to developers using Qiniu Cloud.

The above is the detailed content of Practical tips: Use Go language to quickly integrate Qiniu Cloud interface. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn