mirror of
https://github.com/eiblog/eiblog.git
synced 2026-02-10 16:42:26 +08:00
53 lines
2.0 KiB
Go
53 lines
2.0 KiB
Go
/*
|
||
包 github.com/qiniu/api.v7/kodo 提供了在您的业务服务器(服务端)调用七牛云存储服务的能力
|
||
|
||
首先,我们要配置下 AccessKey/SecretKey,这可以在七牛 Portal 中查到:
|
||
|
||
kodo.SetMac("your-access-key", "your-secret-key")
|
||
|
||
然后我们创建一个 Client 对象:
|
||
|
||
zone := kodo.ZoneZ0 // 您空间(Bucket)所在的区域
|
||
c := kodo.New(zone, nil) // 用默认配置创建 Client
|
||
|
||
有了 Client,你就可以操作您的空间(Bucket)了,比如我们要上传一个文件:
|
||
|
||
import "golang.org/x/net/context"
|
||
|
||
bucket := c.Bucket("your-bucket-name")
|
||
ctx := context.Background()
|
||
...
|
||
localFile := "/your/local/image/file.jpg"
|
||
err := bucket.PutFile(ctx, nil, "foo/bar.jpg", localFile, nil)
|
||
if err != nil {
|
||
... // 上传文件失败处理
|
||
return
|
||
}
|
||
// 上传文件成功
|
||
// 这时登录七牛Portal,在 your-bucket-name 空间就可以看到一个 foo/bar.jpg 的文件了
|
||
|
||
当然,除了上传文件,各种空间(Bucket)相关的操作都可以有,最常见自然是增删改查了:
|
||
|
||
entry, err := bucket.Stat(ctx, "foo/bar.jpg") // 看看空间中是否存在某个文件,其属性是什么
|
||
bucket.Delete(ctx, "foo/bar.jpg") // 删除空间中的某个文件
|
||
bucket.ChangeMime(ctx, "foo/bar.jpg", "image/jpeg") // 修改某个文件的 MIME 属性
|
||
bucket.Move(ctx, "foo/bar.jpg", "new-name.jpg") // 移动文件
|
||
bucket.Copy(ctx, "foo/bar.jpg", "new-copy-file.jpg") // 复制文件
|
||
|
||
等等... 请问怎么下载文件?如果是公开文件,我们只需要:
|
||
|
||
import "net/http"
|
||
|
||
domain := "domain-of-your-bucket.com" // 您的空间绑定的域名,这个可以在七牛的Portal中查到
|
||
baseUrl := kodo.MakeBaseUrl(domain, "foo/bar.jpg") // 得到下载 url
|
||
resp, err := http.Get(baseUrl)
|
||
...
|
||
|
||
但是对于私有空间,事情要复杂一些,访问上面的 baseUrl 会被拒绝。我们需要多做一步:
|
||
|
||
privateUrl := c.MakePrivateUrl(baseUrl, nil) // 用默认的下载策略去生成私有下载的 url
|
||
resp, err := http.Get(privateUrl)
|
||
...
|
||
*/
|
||
package kodo
|