当前位置:网站首页>aws s3 upload file
aws s3 upload file
2022-08-02 02:45:00 【Asimov__】
go get github.com/aws/aws-sdk-go
package mainimport ("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 name"), // bucket nameKey: 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://bucketname.s3.ap-east-1.amazonaws.com/" + tempFileNamereturn fileUrl, err}func main() {s, err := session.NewSession(&aws.Config{Region: aws.String("ap-east-1"), // Replace the region of your own accountCredentials: credentials.NewStaticCredentials("AccessKeyID","SecretAccessKey","SessionToken"), // Sessiontoken is process related and should be returned in the connection (can be null)})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: Apply in the security_credentials of the account (or create a user in IAM)
边栏推荐
- 忽晴忽雨
- AWR analysis report questions for help: How can SQL be optimized from what aspects?
- svm.SVC应用实践1--乳腺癌检测
- [Unity entry plan] 2D Game Kit: A preliminary understanding of the composition of 2D games
- 内卷的正确打开方式
- OC中new和init的区别
- FOFAHUB usage test
- Electronic Manufacturing Warehouse Barcode Management System Solution
- JS中获取对象数据类型的键值对的键与值
- 2022 NPDP take an examination of how the results?How to query?
猜你喜欢
yaml
Nanoprobes丨1-巯基-(三甘醇)甲醚功能化金纳米颗粒
Use DBeaver for mysql data backup and recovery
KICAD 小封装拉线卡顿问题 解决方法
一次SQL优化,数据库查询速度提升 60 倍
Lombok
ReentrantLock工作原理
Reflex WMS Intermediate Series 7: What should I do if I want to cancel the picking of an HD that has finished picking but has not yet been loaded?
使用docker安装mysql
记一个gorm初始化的坑
随机推荐
Nanoprobes多组氨酸 (His-) 标签标记:重组蛋白检测方案
CASE2023
因为WiFi原因navicat 无法连接数据库Mysql
BI - SQL 丨 WHILE
启发式合并、DSU on Tree
[Server data recovery] Data recovery case of server Raid5 array mdisk disk offline
罗德里格斯公式(Rodrigues‘ Rotation Formula)推导
1688以图搜货
qt点云配准软件
TKU remembers a single-point QPS optimization (I wish ITEYE is finally back)
BI-SQL丨WHILE
Swift运行时(派发机制)
AWR analysis report questions for help: How can SQL be optimized from what aspects?
feign调用不通问题,JSON parse error Illegal character ((CTRL-CHAR, code 31)) only regular white space (r
记一次gorm事务及调试解决mysql死锁
BioVendor人俱乐部细胞蛋白(CC16)Elisa试剂盒研究领域
Ringtone 1161. Maximum In-Layer Elements and
analog IC layout-Design for reliability
使用self和_(下划线)的区别
esp32经典蓝牙和单片机连接,,,手机蓝牙作为主机