当前位置:网站首页>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)

边栏推荐
- 很有意思的经历,很有意思的项目--文件夹对比工具
- 罗德里格斯公式(Rodrigues‘ Rotation Formula)推导
- feign调用不通问题,JSON parse error Illegal character ((CTRL-CHAR, code 31)) only regular white space (r
- Safety (1)
- Use DBeaver for mysql data backup and recovery
- 树链剖分-
- 使用docker安装mysql
- Nanoprobes丨1-巯基-(三甘醇)甲醚功能化金纳米颗粒
- Docker-compose安装mysql
- 国标GB28181协议EasyGBS平台兼容老版本收流端口的功能实现
猜你喜欢

国标GB28181协议EasyGBS平台兼容老版本收流端口的功能实现

菜刀webshell特征分析

数仓:为什么说 ETL 的未来不是 ELT,而是 EL (T)

BioVendor Human Club Cellular Protein (CC16) Elisa Kit Research Fields

Nanoprobes多组氨酸 (His-) 标签标记:重组蛋白检测方案

Electronic Manufacturing Warehouse Barcode Management System Solution

永磁同步电机36问(三)——SVPWM代码实现

局部敏感哈希:如何在常数时间内搜索Embedding最近邻

很有意思的经历,很有意思的项目--文件夹对比工具

CASE2023
随机推荐
240...循迹
feign调用不通问题,JSON parse error Illegal character ((CTRL-CHAR, code 31)) only regular white space (r
(一)Redis: 基于 Key-Value 的存储系统
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?
TKU remembers a single-point QPS optimization (I wish ITEYE is finally back)
Safety (2)
内卷的正确打开方式
【每日一道LeetCode】——9. 回文数
Chopper webshell feature analysis
面对职场“毕业”,PM&PMO应该如何从容的应对?如何跳槽能够大幅度升职加薪?
工程师如何对待开源
机器人领域期刊会议汇总
Nanoprobes多组氨酸 (His-) 标签标记:重组蛋白检测方案
2022.8.1-----leetcode.1374
使用docker安装mysql
* 比较版本号
What to study after the PMP exam?The soft exam ahead is waiting for you~
[Server data recovery] Data recovery case of server Raid5 array mdisk disk offline
Flask入门学习教程
线程的不同状态