【oss】阿里云oss服务器模拟

文章目录

  • 1 测试服务器搭建
  • 2 go sdk demo编写
    • 2.1 本地文件上传至oss
    • 2.2 oss文件下载至本地
  • 3 Reference

1 测试服务器搭建

  1. ruby环境
sudo apt-get update
sudo apt-get install ruby
ruby --version
  1. 依赖
sudo gem install thor builder
  1. 拉取项目
    https://github.com/aliyun/oss-emulator

  2. 启动服务

cd oss-emulator
ruby bin/emulator -r store -p 9999
  1. 创建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

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文件下载至本地

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

上一篇:天翼云防火墙配置端口转换案例-解决方案:


下一篇:将OpenCV与gdb驱动的IDE结合使用-用法