国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

5、AWS SDK for Go-使用s3manager上傳下載文件

這篇具有很好參考價值的文章主要介紹了5、AWS SDK for Go-使用s3manager上傳下載文件。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

傳輸管理器

文檔地址:傳送門
上傳和下載管理器可以分解大型對象,以便可以將它們分成多個部分并行傳輸。這使得恢復中斷的傳輸變得容易。

下載管理器

S3 下載管理器確定文件是否可以拆分為更小的部分并并行下載。您可以自定義并行下載的數(shù)量和下載部分的大小。

上傳管理器

S3 上傳管理器確定文件是否可以拆分為更小的部分并并行上傳。您可以自定義并行上傳的數(shù)量和上傳部分的大小。

示例代碼

package main

import (
	"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"
	"github.com/aws/aws-sdk-go/service/s3/s3manager"
	"os"
)

var (
	accessKey = "xxx"       //""
	secretKey = "xxx" //""
	region    = "oss-cn-beijing"
	endpoint  = "oss-cn-beijing.aliyuncs.com"
)

func main() {
	//只要不修改session,session就可以安全的并發(fā)使用。
	sess, err := session.NewSession(&aws.Config{
		Credentials: credentials.NewStaticCredentials(accessKey, secretKey, ""),
		Endpoint:    aws.String(endpoint),
		Region:      aws.String(region),
		//minio:true,oss:false
		S3ForcePathStyle: aws.Bool(false),
		//SDK 支持使用客戶端 TLS 證書配置的環(huán)境和會話選項,這些證書作為客戶端 TLS 握手的一部分發(fā)送以進行客戶端身份驗證。
		//如果使用,則需要 Cert 和 Key 值。如果缺少一個,或者無法加載文件的內(nèi)容,則會返回一個錯誤。
		//ClientTLSCert:              nil,
		//ClientTLSKey:               nil,
	})
	if err != nil {
		panic(err)
	}

	svc := s3.New(sess)
	//本地需要存在一個2.jpg文件
	UploadWithClient(svc, "bkt-bj1", "2.jpg")
	DownloadWithClient(svc, "bkt-bj1", "2.jpg")

}

//https://docs.aws.amazon.com/zh_cn/sdk-for-go/v1/developer-guide/sdk-utilities.html
//傳輸管理器 上傳和下載管理器可以分解大型對象,以便可以將它們分成多個部分并行傳輸。這使得恢復中斷的傳輸變得容易。
//S3 下載管理器確定文件是否可以拆分為更小的部分并并行下載。您可以自定義并行下載的數(shù)量和下載部分的大小。
func DownloadWithClient(svc *s3.S3, bucket, key string) {
	download := s3manager.NewDownloaderWithClient(svc, func(d *s3manager.Downloader) {
		d.PartSize = 64 * 1024 * 1024 // 64MB per part
		//d.BufferProvider = s3manager.NewPooledBufferedWriterReadFromProvider(25 * 1024 * 1024)
	})

	f, err := os.Create("d_" + key)
	if err != nil {
		panic(err)
	}
	defer f.Close()
	n, err := download.Download(f, &s3.GetObjectInput{
		Bucket: aws.String(bucket),
		Key:    aws.String(key),
	})
	if err != nil {
		panic(err)
	}
	fmt.Printf("Download.n:%d\n", n)
}

//S3 上傳管理器確定文件是否可以拆分為更小的部分并并行上傳。您可以自定義并行上傳的數(shù)量和上傳部分的大小。
func UploadWithClient(svc *s3.S3, bucket, key string) {
	uploader := s3manager.NewUploaderWithClient(svc, func(u *s3manager.Uploader) {
		定義將在內(nèi)存中緩沖25個MiB的策略
		//u.BufferProvider = s3manager.NewBufferedReadSeekerWriteToPool(25 * 1024 * 1024)
		//指定要上傳的每個部分的緩沖區(qū)大?。ㄒ宰止?jié)為單位)。每個部分的最小大小為 5 MB。 DefaultUploadPartSize
		u.PartSize = 64 * 1024 * 1024 // 每個部分 64MB
		//	指定要并行上傳的part數(shù)量。 默認為5
		u.Concurrency = s3manager.DefaultUploadConcurrency
	})
	fOpen, err := os.Open(key)
	if err != nil {
		panic(err)
	}
	uploadOutput, err := uploader.Upload(&s3manager.UploadInput{
		Body:   fOpen,
		Bucket: aws.String(bucket),
		Key:    aws.String(key),
	})
	if err != nil {
		if multierr, ok := err.(s3manager.MultiUploadFailure); ok {
			// Process error and its associated uploadID
			fmt.Println("Error:", multierr.Code(), multierr.Message(), multierr.UploadID())
		} else {
			// Process error generically
			fmt.Println("Error:", err.Error())
		}

		return
	}
	fmt.Printf("UploadID:%s\n", uploadOutput.UploadID)
	fmt.Printf("ETag:%s\n", *uploadOutput.ETag)
	fmt.Printf("Location:%s\n", uploadOutput.Location)
}


輸出結(jié)果

UploadID:
ETag:"43325E9E80CDF868045A4ADD7893B935"
Location:https://bkt-bj1.oss-cn-beijing.aliyuncs.com/2.jpg
Download.n:147526

下載的文件:d_2.jpg如圖
s3manager.newuploader,aws-sdk-go,aws,golang,云計算文章來源地址http://www.zghlxwxcb.cn/news/detail-607443.html

到了這里,關(guān)于5、AWS SDK for Go-使用s3manager上傳下載文件的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • Windows下Qt使用AWS SDK for C++連接MinIO服務器

    Windows下Qt使用AWS SDK for C++連接MinIO服務器

    MinIO——分布式對象存儲服務器。 它是一個是一個高性能的對象存儲服務器,用于構(gòu)建云存儲解決方案,出于工作需求用到了這個MinIO來管理文件。 但,我用的是Qt,c++語言,并且使用環(huán)境是windows,可MinIO的C++ SDK只能Linux使用,不支持Windows,如果非要自己編譯Windows版本的話估

    2024年02月02日
    瀏覽(32)
  • AWS SDK 3.x for .NET Framework 4.0 可行性測試

    AWS SDK 3.x for .NET Framework 4.0 可行性測試

    為了應對日益增長的網(wǎng)絡安全挑戰(zhàn), 越來越多的互聯(lián)網(wǎng)廠商已經(jīng)陸續(xù)開始或者已經(jīng)徹底停止了對 SSL 3 / TLS 1.0 / TLS1.1 等上古加密算法的支持. 而對于一些同樣擁有悠久歷史的和 AWS 服務相關(guān)聯(lián)的應用程序, 是否可以通過僅更新 SDK 版本的方式來適應新的環(huán)境. 本文將以 Windows Serv

    2024年02月11日
    瀏覽(20)
  • AWS-自定義ami的S3存取使用

    AWS-自定義ami的S3存取使用

    需要提前配置好aws-cli哈 對應的區(qū)域 要統(tǒng)一 示例:即AWS-CLI 和 EC2、AMI、S3以上資源均要使用同已區(qū)域,以下拿新加坡舉例 1.新建自定義AMI 2.查看ami狀態(tài) 確認是可用狀態(tài),才能開始操作 3.aws-cli 開始存入s3 只能使用桶的根目錄 開始上傳s3 正?;仫@ 查看進度 正?;仫@ 去桶上查看

    2024年02月13日
    瀏覽(17)
  • [ 云計算 | AWS 實踐 ] 使用 Java 列出存儲桶中的所有 AWS S3 對象

    [ 云計算 | AWS 實踐 ] 使用 Java 列出存儲桶中的所有 AWS S3 對象

    本文收錄于【#云計算入門與實踐 - AWS】專欄中,收錄 AWS 入門與實踐相關(guān)博文。 本文同步于個人公眾號:【 云計算洞察 】 更多關(guān)于云計算技術(shù)內(nèi)容敬請關(guān)注:CSDN【#云計算入門與實踐 - AWS】專欄。 本系列已更新博文: [ 云計算 | AWS 實踐 ] Java 應用中使用 Amazon S3 進行存儲桶

    2024年02月06日
    瀏覽(21)
  • AWS s3 使用教程,前后端Java+html開發(fā)教程

    AWS s3 使用教程,前后端Java+html開發(fā)教程

    目錄 一、 AWS S3配置說明 1. S3?Bucket配置 1.1 ACL配置 1.2 存儲桶策略配置 1.3 跨源資源共享配置 2. IAM配置 2.1 創(chuàng)建S3UploadPolicy策略 2.2 創(chuàng)建S3的Role 3. EC2配置 3.1 EC2添加role 二、S3 HTML+JAVA代碼實現(xiàn) 三、AWS cloudfront 及Signed url 四、相關(guān)文檔 S3 Bucket包括ACL配置、存儲桶策略配置及跨源資

    2024年02月03日
    瀏覽(73)
  • 使用亞馬遜(AWS)云服務在S3上實現(xiàn)圖片縮放功能(CloudFront/S3[AccessPoint/LambdaAccessPoint])

    使用亞馬遜(AWS)云服務在S3上實現(xiàn)圖片縮放功能(CloudFront/S3[AccessPoint/LambdaAccessPoint])

    亞馬遜云服務中的S3對象存儲功能和國內(nèi)阿里云的oss對象存儲使用基本一致。但是涉及到存儲內(nèi)容處理時,兩家有些差別。 比如:對于云存儲中的圖片資源,阿里云比較人性化對于基本的縮放裁剪功能已經(jīng)幫我們封裝好了,只需要在url地址后面拼接參數(shù)即可,但是亞馬遜S3存

    2024年02月16日
    瀏覽(14)
  • [ 云計算 | AWS 實踐 ] 使用 Java 更新現(xiàn)有 Amazon S3 對象

    [ 云計算 | AWS 實踐 ] 使用 Java 更新現(xiàn)有 Amazon S3 對象

    本文收錄于【#云計算入門與實踐 - AWS】專欄中,收錄 AWS 入門與實踐相關(guān)博文。 本文同步于個人公眾號:【 云計算洞察 】 更多關(guān)于云計算技術(shù)內(nèi)容敬請關(guān)注:CSDN【#云計算入門與實踐 - AWS】專欄。 本系列已更新博文: [ 云計算 | AWS 實踐 ] Java 應用中使用 Amazon S3 進行存儲桶

    2024年02月05日
    瀏覽(26)
  • Amazon S3 的 java sdk簡單使用

    在開發(fā)過程中基本都需要使用到對象存儲技術(shù)。 對于一些國內(nèi)的項目來說,可以使用阿里云,七牛云,京東云等開發(fā)平臺進行開發(fā)對接存儲對象。 而對于海外的項目,可能現(xiàn)有的國內(nèi)技術(shù)無法使用,這時候就遇到了amazon這個平臺了。在此只整理了其對接以及對象存儲和驗簽

    2024年02月02日
    瀏覽(18)
  • 使用AWS MVP方案[Data Transfer Hub]從Global S3同步文件到中國區(qū)S3

    使用AWS MVP方案[Data Transfer Hub]從Global S3同步文件到中國區(qū)S3

    本文主要描述在AWS Global區(qū)部署Data Transfer Hub方案,并創(chuàng)建從global S3同步文件到中國區(qū)S3的任務 ? 1.1 AWS Global賬號 需要一個AWS Global的賬號,并且有相應的權(quán)限,本例是Full Administrator權(quán)限 1.2 在AWS Global賬號下準備一個S3存儲桶 登陸AWS Global賬號,選擇 服務 - 存儲 - S3 ? 點擊創(chuàng)建

    2024年02月08日
    瀏覽(22)
  • 使用rclone工具實現(xiàn)華為云OBS至AWS S3數(shù)據(jù)遷移同步

    使用rclone工具實現(xiàn)華為云OBS至AWS S3數(shù)據(jù)遷移同步

    ????????項目需要將華為云的OBS對象存儲服務的存儲桶bucket的內(nèi)容遷移復制到AWS云的S3存儲桶中,AWS中暫無實現(xiàn)改需求的云服務,所以采用開源的第三方軟件rclone來實現(xiàn)。 ? ? ? ? rclone可以使用在linux操作系統(tǒng)中,是一種命令行形式的工具。 華為云OBS: 1. 已從統(tǒng)一身份認

    2024年02月02日
    瀏覽(53)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包