编辑
2024-09-20
后端
00
请注意,本文编写于 232 天前,最后修改于 232 天前,其中某些信息可能已经过时。

原因是文件服务存的文件越来越多,但是我的服务器只有20G磁盘,原来是打算只给博客用的,买了三年,加上使用fastapi写的,也还占点内存,打包下有100多MB

之前还好,最近因为存储不足影响其他服务(Blog),于是打算重写服务,新的服务用Go实现,打包的可执行文件小,省空间

把sqlite换掉换成自己写的持久化Slice,反正没什么压力,自己用,内存问题则是把本地存储换成阿里云OSS,9块钱一年,很不错!

先登陆阿里云购买Oss然后创建一个桶,再创建访问ID和密钥

接下来是模板代码

go
go get github.com/aliyun/aliyun-oss-go-sdk/oss

然后是操作基础代码,因为我是用的功能不多

go
package main import ( "fmt" "os" "github.com/aliyun/aliyun-oss-go-sdk/oss" ) func handleError(err error) { fmt.Println("Error:", err) os.Exit(-1) } func main() { // 阿里云账号的 AccessKey ID 和 AccessKey Secret accessKeyID := "your-access-key-id" accessKeySecret := "your-access-key-secret" // 阿里云 OSS 的 Endpoint endpoint := "your-oss-endpoint" // 阿里云 OSS 的 Bucket 名称 bucketName := "your-bucket-name" // 创建 OSS 客户端 client, err := oss.New(endpoint, accessKeyID, accessKeySecret) if err != nil { handleError(err) } // 获取存储空间 bucket, err := client.Bucket(bucketName) if err != nil { handleError(err) } // 上传文件 objectName := "example-object" filePath := "example-file.txt" err = bucket.PutObjectFromFile(objectName, filePath) if err != nil { handleError(err) } fmt.Println("File uploaded successfully") // 下载文件 downloadPath := "downloaded-file.txt" err = bucket.GetObjectToFile(objectName, downloadPath) if err != nil { handleError(err) } fmt.Println("File downloaded successfully") // 删除文件 err = bucket.DeleteObject(objectName) if err != nil { handleError(err) } fmt.Println("File deleted successfully") }

image.png

本文作者:yowayimono

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!