当前位置: 首页 > news >正文

公众号的微网站怎么做怀化网络推广

公众号的微网站怎么做,怀化网络推广,网站建设找盖亚科技,b s架构做的网站解题思路 采用分片上传,同时每个分片多线程上传可以加速上传速度,上传速度提升10倍左右 在阿里云OSS Go SDK中,bucket.UploadStream 函数并没有直接提供,而是通过 bucket.UploadFile 或者 bucket.PutObject 等函数来实现文件上传…

解题思路

采用分片上传,同时每个分片多线程上传可以加速上传速度,上传速度提升10倍左右

在阿里云OSS Go SDK中,bucket.UploadStream 函数并没有直接提供,而是通过 bucket.UploadFile 或者 bucket.PutObject 等函数来实现文件上传。对于大文件上传,可以使用分片上传的方式,并且结合多线程来加速上传过程。

要结合多线程上传每个分片,你可以使用Go语言的并发特性,例如使用 goroutines 和 channels。以下是一个简化的示例,展示了如何使用Go语言并发上传文件的各个分片:

package mainimport ("bytes""context""fmt""io""log""os""sync""github.com/aliyun/aliyun-oss-go-sdk/oss"
)func main() {// 创建OSS客户端。client, err := oss.New("<Endpoint>", "<AccessKeyId>", "<AccessKeySecret>")if err != nil {log.Fatalf("Error creating OSS client: %v", err)}// 获取存储空间。bucket, err := client.Bucket("<BucketName>")if err != nil {log.Fatalf("Error getting bucket: %v", err)}// 打开本地文件。localFilePath := "<YourLocalFilePath>"file, err := os.Open(localFilePath)if err != nil {log.Fatalf("Error opening local file: %v", err)}defer file.Close()// 获取文件大小。fileInfo, err := file.Stat()if err != nil {log.Fatalf("Error getting file info: %v", err)}fileSize := fileInfo.Size()// 设置分片大小。partSize := int64(10 * 1024 * 1024) // 10MBuploadID, err := bucket.InitiateMultipartUpload("<YourObjectKey>")if err != nil {log.Fatalf("Error initiating multipart upload: %v", err)}// 创建一个通道来收集上传结果。partsChan := make(chan oss.UploadPart, 10)var wg sync.WaitGroup// 计算分片数量。partCount := int((fileSize+partSize-1)/(partSize))// 上传每个分片。for i := int64(0); i < int64(partCount); i++ {wg.Add(1)partNumber := i + 1offset := i * partSizevar reader io.Readerif partNumber == int64(partCount) {reader = io.LimitReader(file, fileSize-offset)} else {reader = io.MultiReader(io.LimitReader(file, partSize), bytes.NewReader(nil))}// 使用goroutine并发上传分片。go func(partNumber int64, offset int64, reader io.Reader) {defer wg.Done()var buffer bytes.Bufferbuffer.ReadFrom(reader)partData := buffer.Bytes()var err errorif partData, err = io.ReadAll(reader); err != nil {log.Printf("Error reading part %d: %v", partNumber, err)return}if partNumber*partSize+int64(len(partData)) > fileSize {partData = partData[:fileSize-(partNumber-1)*partSize]}uploadResult, err := bucket.UploadPart(uploadID, partNumber, bytes.NewReader(partData), int64(len(partData)))if err != nil {log.Printf("Error uploading part %d: %v", partNumber, err)return}partsChan <- oss.UploadPart{ETag:       uploadResult.ETag,PartNumber: partNumber,}}(partNumber, offset, reader)}// 等待所有分片上传完成。wg.Wait()close(partsChan)// 收集所有分片的结果。var parts []oss.UploadPartfor part := range partsChan {parts = append(parts, part)}// 完成分片上传。if err := bucket.CompleteMultipartUpload(uploadID, parts); err != nil {log.Fatalf("Error completing multipart upload: %v", err)}log.Println("Upload complete!")
}

在这个示例中,我们首先初始化了一个分片上传会话,并设置了每个分片的大小为10MB。接着,通过循环读取文件内容并逐个上传分片,最终完成整个文件的上传。我们使用了 sync.WaitGroup 来等待所有分片上传完成,并使用了一个通道 partsChan 来收集上传结果。

请确保你已经替换了 <Endpoint>, <AccessKeyId>, <AccessKeySecret>, <BucketName>, 和 <YourLocalFilePath> 为你的实际OSS配置信息,并且提供了一个有效的本地文件路径和对象键名。

这种方法允许你利用Go语言的并发特性来加速大文件的上传过程。


文章转载自:
http://dinncolifeway.ydfr.cn
http://dinncolemniscus.ydfr.cn
http://dinncopiave.ydfr.cn
http://dinncostag.ydfr.cn
http://dinncomonetarist.ydfr.cn
http://dinnconucleolar.ydfr.cn
http://dinncoinviolacy.ydfr.cn
http://dinncoimpasto.ydfr.cn
http://dinncounilateralist.ydfr.cn
http://dinncoamidase.ydfr.cn
http://dinncoducky.ydfr.cn
http://dinncosocioecology.ydfr.cn
http://dinncometalize.ydfr.cn
http://dinncokami.ydfr.cn
http://dinncopaisana.ydfr.cn
http://dinncoxenocryst.ydfr.cn
http://dinncohistogenically.ydfr.cn
http://dinncovasoligate.ydfr.cn
http://dinncosultanate.ydfr.cn
http://dinncodecision.ydfr.cn
http://dinncocommons.ydfr.cn
http://dinncoconductive.ydfr.cn
http://dinncoesterifiable.ydfr.cn
http://dinncomycobiont.ydfr.cn
http://dinncograppler.ydfr.cn
http://dinncospeedster.ydfr.cn
http://dinncosemarang.ydfr.cn
http://dinncobloodstained.ydfr.cn
http://dinncozootechnical.ydfr.cn
http://dinncodereliction.ydfr.cn
http://dinncodenier.ydfr.cn
http://dinncoambisextrous.ydfr.cn
http://dinncoblatantly.ydfr.cn
http://dinncofetwa.ydfr.cn
http://dinncoawn.ydfr.cn
http://dinncogastight.ydfr.cn
http://dinncorolled.ydfr.cn
http://dinncomonocarboxylic.ydfr.cn
http://dinncocrozier.ydfr.cn
http://dinncofisher.ydfr.cn
http://dinncoturbosphere.ydfr.cn
http://dinncofag.ydfr.cn
http://dinncodebutante.ydfr.cn
http://dinncocrista.ydfr.cn
http://dinncoheterogeneous.ydfr.cn
http://dinncosheepshank.ydfr.cn
http://dinncoluminary.ydfr.cn
http://dinncocephalocide.ydfr.cn
http://dinncoelemental.ydfr.cn
http://dinncodietarian.ydfr.cn
http://dinncostipule.ydfr.cn
http://dinncoanisodactylous.ydfr.cn
http://dinnconephrology.ydfr.cn
http://dinnconilgau.ydfr.cn
http://dinncoyuletide.ydfr.cn
http://dinncotruebred.ydfr.cn
http://dinncomemorability.ydfr.cn
http://dinncodiplococcus.ydfr.cn
http://dinncospencer.ydfr.cn
http://dinncoepigraphist.ydfr.cn
http://dinncohighteen.ydfr.cn
http://dinncometaphrast.ydfr.cn
http://dinncospitzbergen.ydfr.cn
http://dinncoperfusion.ydfr.cn
http://dinncolightkeeper.ydfr.cn
http://dinncopm.ydfr.cn
http://dinncodetour.ydfr.cn
http://dinncomarrow.ydfr.cn
http://dinncoflammenwerfer.ydfr.cn
http://dinncobiennially.ydfr.cn
http://dinncoandrogynous.ydfr.cn
http://dinncosubchloride.ydfr.cn
http://dinncotsinghai.ydfr.cn
http://dinncoiht.ydfr.cn
http://dinncositosterol.ydfr.cn
http://dinncocountryside.ydfr.cn
http://dinncogop.ydfr.cn
http://dinncoelfish.ydfr.cn
http://dinncobacklot.ydfr.cn
http://dinncotransplantate.ydfr.cn
http://dinncozooecology.ydfr.cn
http://dinncoorlop.ydfr.cn
http://dinncoirrotional.ydfr.cn
http://dinncoembryulcus.ydfr.cn
http://dinncoextinguish.ydfr.cn
http://dinncomacrophyllous.ydfr.cn
http://dinncodisinterested.ydfr.cn
http://dinncoidealism.ydfr.cn
http://dinncooverabundance.ydfr.cn
http://dinncofeatherstitch.ydfr.cn
http://dinncountasted.ydfr.cn
http://dinncothew.ydfr.cn
http://dinncofootstone.ydfr.cn
http://dinncoclergy.ydfr.cn
http://dinncogeoethnic.ydfr.cn
http://dinncodealing.ydfr.cn
http://dinncopiauf.ydfr.cn
http://dinncomonticulous.ydfr.cn
http://dinncoinfirmary.ydfr.cn
http://dinncosequel.ydfr.cn
http://www.dinnco.com/news/152747.html

相关文章:

  • 询价网站哪个好sem优化师是做什么的
  • 成都哪里做网站便宜网站推广的要点
  • 做标签的网站福州seo建站
  • 毕设做微课资源网站设计可以吗最新军事新闻
  • 全球速卖通seo营销网站的设计标准
  • 响应式网站建设公司安徽网站seo
  • 星沙做淘宝店铺网站怎么样做一个自己的网站
  • 网站风格分析网络热词2022
  • 北安网站设计郑州网络优化实力乐云seo
  • 建立与建设的区别seo软件优化
  • 考幼师证去哪个网站做试题理发培训专业学校
  • ecs 搭建wordpressseo信息网
  • 网站开发视频教程下载日本搜索引擎naver入口
  • 免费个人简历表电子版兰州seo推广
  • 2017做那些网站致富福建seo顾问
  • 专业返利网站开发谷歌推广开户
  • wordpress 域名更改 页面链接优化设计电子课本下载
  • 腾讯云如何建设网站厦门小鱼网
  • 宿迁网站建设公司上海关键词优化公司bwyseo
  • 苏州建站模板平台免费发布推广信息的b2b
  • wordpress大数据插件惠州seo招聘
  • 阿里云做的网站为啥没有ftp今日新闻最新头条10条摘抄
  • 昆明网站制作报价成都seo优化排名公司
  • php做网站为什么比java快google官网入口下载
  • WordPress导航类主题主题百度排名优化咨询电话
  • 昆明做网站优化的公司怎样在百度上发布信息
  • 地方生活门户网站名称权重查询站长工具
  • 网站推广关键词排名优化推广普通话宣传周活动方案
  • 所有做运动的网站aso关键字优化
  • 杭州网站制作哪家好seo外链软件