文章目录
- [1 测试服务器搭建](#1 测试服务器搭建)
- [2 go sdk demo编写](#2 go sdk demo编写)
-
- [2.1 本地文件上传至oss](#2.1 本地文件上传至oss)
- [2.2 oss文件下载至本地](#2.2 oss文件下载至本地)
- [3 Reference](#3 Reference)
1 测试服务器搭建
-
ruby环境
sudo apt-get update
sudo apt-get install ruby
ruby --version -
依赖
sudo gem install thor builder
-
启动服务
cd oss-emulator
ruby bin/emulator -r store -p 9999 -
创建bucket
ossutil mb oss://bucket -e http://192.168.56.128:9999
ossutil -e http://192.168.56.128:9999 -i AccessKeyId -k AccessKeySecret ls oss://bucket
2 go sdk demo编写
2.1 本地文件上传至oss
go
func main() {
// 创建OSSClient实例。
client, err := oss.New("http://192.168.56.128:9999", "AccessKeyId", "AccessKeySecret")
if err != nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
bucket, err := client.Bucket("bucket")
if err != nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
// 完整路径 例如将本地文件D:\upload\file.txt 上传至 upload/file.txt。
err = bucket.PutObjectFromFile("upload/file.txt", "D:\\upload\\file.txt")
if err != nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
}
2.2 oss文件下载至本地
go
func main() {
// 创建OSSClient实例。
client, err := oss.New("http://192.168.56.128:9999", "AccessKeyId", "AccessKeySecret")
if err != nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
bucket, err := client.Bucket("bucket")
if err != nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
// 完整路径 例如将文件upload/file.txt下载至本地D:\upload\file.txt。
err = bucket.GetObjectToFile("upload/file.txt", "D:\\upload\\file.txt")
if err != nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
}
3 Reference
OSS服务模拟器:https://github.com/aliyun/oss-emulator
ossutil文档:https://help.aliyun.com/zh/oss/developer-reference/overview-59
sdk demo文档:https://help.aliyun.com/zh/oss/developer-reference/streaming-download-5