当前位置:网站首页>aws s3上传文件
aws s3上传文件
2022-08-02 02:34:00 【Asimov__】
go get github.com/aws/aws-sdk-go
package main
import (
"bytes"
"fmt"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/credentials"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/s3"
"io/ioutil"
"log"
"net/http"
"os"
)
func Read(filepath string) []byte {
f, err := os.Open(filepath)
if err != nil {
log.Println("read file fail", err)
return nil
}
defer f.Close()
fd, err := ioutil.ReadAll(f)
if err != nil {
log.Println("read to fd fail", err)
return nil
}
return fd
}
func UploadFileToS3(s *session.Session, raw []byte, filename string) (string, error) {
tempFileName := "cards/" + filename
_, err := s3.New(s).PutObject(&s3.PutObjectInput{
Bucket: aws.String("bucket名称"), // bucket名称
Key: aws.String(tempFileName),
Body: bytes.NewReader(raw),
ContentType: aws.String(http.DetectContentType(raw)),
})
if err != nil {
log.Println("PUT err", err)
return "", err
}
fileUrl := "https://bucket名称.s3.ap-east-1.amazonaws.com/" + tempFileName
return fileUrl, err
}
func main() {
s, err := session.NewSession(&aws.Config{
Region: aws.String("ap-east-1"), // 替换自己账户的region
Credentials: credentials.NewStaticCredentials(
"AccessKeyID",
"SecretAccessKey",
"SessionToken"), // Sessiontoken是进程相关,应该是连接中可以返回 (可为空)
})
if err != nil {
log.Println("aws failed", err)
}
for i := 0; i < 10000; i++ {
f1 := fmt.Sprintf("green_%d.gif", i)
res := Read("./green/" + f1)
fileName, err1 := UploadFileToS3(s, res, f1)
if err1 != nil {
//log.Println("Upload failed ", err1)
} else {
log.Println("upload success ", fileName)
}
}
}
AccessKeyID SecretAccessKey: 在账户(或IAM中建个用户)的security_credentials中申请
边栏推荐
猜你喜欢
AWR分析报告问题求助:SQL如何可以从哪几个方面优化?
BioVendor人俱乐部细胞蛋白(CC16)Elisa试剂盒研究领域
【web】理解 Cookie 和 Session 机制
2022牛客多校四_G M
analog IC layout-Environmental noise
【 wheeled odometer 】
MySQL8 download, start, configure, verify
analog IC layout-Parasitic effects
使用docker安装mysql
Electronic Manufacturing Warehouse Barcode Management System Solution
随机推荐
一次SQL优化,数据库查询速度提升 60 倍
【ORB_SLAM2】void Frame::AssignFeaturesToGrid()
Flask 报错:WARNING This is a development server. Do not use it in a production deployment
ofstream,ifstream,fstream read and write files
BioVendor Human Club Cellular Protein (CC16) Elisa Kit Research Fields
Nanoprobes多组氨酸 (His-) 标签标记:重组蛋白检测方案
Chapter 7 Noise analysis
789. 数的范围
线程的不同状态
数仓:为什么说 ETL 的未来不是 ELT,而是 EL (T)
MySQL - CRUD operations
ros多客户端请求服务
to-be-read list
51. 数字排列
esp32经典蓝牙和单片机连接,,,手机蓝牙作为主机
mysql 查看死锁
2022年NPDP考完多久出成绩?怎么查询?
罗德里格斯公式(Rodrigues‘ Rotation Formula)推导
Nanoprobes丨1-巯基-(三甘醇)甲醚功能化金纳米颗粒
优炫数据库导库导错了能恢复吗?