当前位置:网站首页>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)
边栏推荐
猜你喜欢
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?
KICAD 拉线宽度无法修改,解决方法
Flask入门学习教程
ofstream,ifstream,fstream read and write files
canal同步Mariadb到Mysql
Nanoprobes多组氨酸 (His-) 标签标记:重组蛋白检测方案
永磁同步电机36问(二)——机械量与电物理量如何转化?
【每日一道LeetCode】——9. 回文数
2022牛客多校三_F G
国标GB28181协议EasyGBS平台兼容老版本收流端口的功能实现
随机推荐
2022 Henan Youth Training League Game (3)
使用self和_(下划线)的区别
canal同步Mariadb到Mysql
NIO‘s Sword(牛客多校赛)
60 Feature Engineering Operations: Using Custom Aggregate Functions【Favorites】
国标GB28181协议EasyGBS平台兼容老版本收流端口的功能实现
Flask 报错:WARNING This is a development server. Do not use it in a production deployment
Ringtone 1161. Maximum In-Layer Elements and
菜刀webshell特征分析
IMU预积分的简单理解
AcWing 1053. 修复DNA 题解(状态机DP、AC自动机)
(一)Redis: 基于 Key-Value 的存储系统
Use DBeaver for mysql data backup and recovery
Lombok
Safety (2)
2022.8.1-----leetcode.1374
240...循迹
C#测试项目中属性的用法
analog IC layout-Design for reliability
Power button 1374. Generate each character string is an odd number