向AWS S3 上传文件

目的是为了要上传大一些的文件,如果中间网络出现问题,后面可以有断点续传类似的功能。

S3基础和网页版使用

控制台
https://s3.console.aws.amazon.com/
教程(就是普通的上传下载文件,百度云?)
https://docs.aws.amazon.com/AmazonS3/latest/gsg/SigningUpforS3.html
价格
https://aws.amazon.com/cn/s3/pricing/

aws 的 sdk

dev文档
https://docs.aws.amazon.com/AmazonS3/latest/dev/Welcome.html

aws sdk 的region 和 access key 的设置

获得key的网址:
https://console.aws.amazon.com/iam/home
步骤和使用:
https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html
https://docs.aws.amazon.com/sdk-for-go/api/service/s3/

例子

文档中的例子,解释详细:
https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/s3-example-basic-bucket-operations.html
github上例子,更全一些:
https://github.com/aws/aws-sdk-go/blob/master/service/s3/examples_test.go

大文件上传

multipart

multipart 的基本概念和限制:
https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html
https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html (REST API)
https://docs.aws.amazon.com/AmazonS3/latest/dev/qfacts.html

multipart(REST API):
https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadInitiate.html

非官方mulitpart上传的例子
https://github.com/apoorvam/aws-s3-multipart-upload/blob/master/aws-multipart-upload.go

我的:
https://github.com/harryhare/big_file_upload

stream ?

在有内存限制时使用stream 的方式的疑问
看下面的页面,这个问题似乎并没有答案
https://stackoverflow.com/questions/34177137/stream-file-upload-to-aws-s3-using-go

我们的项目中的代码是用amazon的REST api 做的?大概原理是这个:
https://docs.aws.amazon.com/AmazonS3/latest/dev/PresignedUrlUploadObject.html

前端直接上传S3

https://aws.amazon.com/cn/blogs/china/s3-multipul-upload-practice/

API错误处理

https://docs.aws.amazon.com/AmazonS3/latest/dev/ErrorBestPractices.html

猜你喜欢

转载自blog.csdn.net/harryhare/article/details/80710279