首页 > 其他分享 >前端上传图片到EOS

前端上传图片到EOS

时间:2023-12-27 17:24:44浏览次数:21  
标签:const aws 前端 bucket EOS 上传 your

最近个人小项目中用到了移动云的EOS服务,需求是前端直接上传图片到移动云的EOS,将返回的图片URL作为参数传给后端,步骤如下:

1、安装依赖:cnpm i aws-sdk

2、指定访问权限:

 1 // 创建 plugins/aws.js 文件
 2 const AWS = require('aws-sdk')
 3 
 4 export const s3 = new AWS.S3({
 5     apiVersion: '2006-03-01',
 6     accessKeyId: 'your-access-key',
 7     secretAccessKey: 'your-secret-access-key',
 8     // endpoint 填写 bucket 所在地域的域名,本章节以 chengdu6 为例
 9     endpoint: 'eos-chengdu-6.cmecloud.cn', 
10     signatureVersion: 'v2',
11     sslEnabled: false
12 });
13 
14 export const bucket = 'your-bucket-name'

3、使用el-upload组件,上传beforeUpload中做文件类型、大小限制,截取file,上传文件:

 1 <template>
 2 <div class="img-uploader">
 3     <el-upload accept=".jpg,.jpeg,.png,.JPG,.JPEG,.PNG" :before-upload="beforeUpload" />
 5 </div>
 6 </template
 8 
 9 import { s3, bucket } from '@/plugins/aws'
10 
11 methods: {
12     beforeUpload (file) {
13       const isImg = this.imageTypes.indexOf(file.type) !== -1
14       const isLt2M = file.size / 1024 < this.fileSize
15 
16       if (!isImg) {
17         this.$message.warning('图片格式不对!', 'error')
18         return
19       }
20       if (!isLt2M) {
21         this.$message.warning('图片大小不能超过 ' + this.fileSize / 1024 + 'MB!', 'error')
22         return
23       }
24       this.handleUpload(file)
25       return false
26     },
27     handleUpload (file) {
28       let params = {
29         Key: file.name + Date.now(),
30         Bucket: bucket,
31         ContentType: file.type,
32         Body: file,
33         ACL: 'public-read' //文件访问权限,参考:https://ecloud.10086.cn/op-help-center/doc/article/57954
34       }
35       s3.upload(params, (err, data) => {
36         if (err) {
37           this.$message.error('上传失败')
38         } else {
39           this.$emit('update', data.Location) // data.Location 为图片上传后的url
40         }
41       })
42     }
43 }

 

 

 

标签:const,aws,前端,bucket,EOS,上传,your
From: https://www.cnblogs.com/yuantai/p/17930991.html

相关文章

  • vue项目中使用tinymce富文本编辑器实现图片上传/粘贴格式
    前言最近因为公司项目的后台管理端需要实现编辑器功能,一方面满足编辑各类文章内容需求,另一方面要自己编辑一些课程相关的介绍,于是就花了一些时间对比体验现有的一些开源的编辑器。编辑器之间的简单比较UEditor:基本满足各种需求,依赖于jquery但是已经不再维护了,实现上传图片等需......
  • 手把手教如何将本地项目上传到Github
    原文一、使用git上传文件到GitHub需要git客户端以及注册GitHub账号。命令简单上传通道git官网:去git官网github官网:去github官网git的安装以及GitHub的注册这里就不说了。还不知道的,没安装的看这里:我要去看git安装教程下边就直接从上传开始。第一步:我们需要先创建一个本地......
  • layui之静态表格的分页及搜索功能以及前端使用XLSX导出Excel功能
    LayUI官方文档:https://layui.dev/docs/2/#introduceXLSXNPM地址:https://www.npmjs.com/package/xlsxXLSX 使用参考文档:https://juejin.cn/post/7003153489920524301https://blog.csdn.net/qq_20805455/article/details/1222297621、在官方网站上下载layui压缩文件解压后选......
  • 袋鼠云数栈前端从 Multirepo 到 Monorepo 研发效率提升探索之路
    我们是袋鼠云数栈UED团队,致力于打造优秀的一站式数据中台产品。我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值。本文作者:星野困境频生前端代码管理何解?前端代码管理一直是困扰着不少前端开发团队的难题,从开发到发布的整体工作流程中,除了常规的技术问题外,往......
  • 富文本编辑器:自己实现图片上传功能和图片粘贴上传(kindeditor)
     在需要编写并保存带有各种格式,图片的文章内容时,往往需要用到富文本编辑器,这次使用到的富文本编辑器是kindeditor,使用下来功能基本足够,在这里记录下在使用时自己添加的功能。 kindeditor自带有图片上传功能,由于几个原因我需要自己实现一下。(一)用的vue,自然是写一个<kindedit......
  • 解决前端vue2报错 Error: Can't resolve cache-loader和Error: Can't resolve babel-l
    总得说来报这种Error:Can'tresolve+模块名字的错误,一般就只有两种原因:一、少了这个包(直接安装:pnpmadd-D模块名字@版本),二、有这个包,但是版本在package.json中不正确。需要和你的vue/cli-service的版本对应上,该降级的时候降级,降级一般先删除再安装新的pnpmremovecss-loaderpn......
  • geoserver中styles引用外部图片
    使用geoserver发布图层,需要显示指定的图标从geoserver用户手册——PointSymbolizer中可以了解到只需在PointSymbolizer时候使用ExternalGraphic标签,其使用说明如下:<PointSymbolizer><Graphic><ExternalGraphic><OnlineResourcexlink:type="simple"......
  • Sftp日常使用(上传和下载)
    SftpSFTP是SecureFileTransferProtocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的网络的加密方法。SFTP与FTP有着几乎一样的语法和功能。SFTP为SSH的其中一部分,是一种传输档案至Blogger伺服器的安全方式。其实在SSH软件包中,已经包含了一个叫作SFTP(SecureFileTr......
  • 在Go语言中处理HTTP文件上传
    大家好,我是你们可爱又迷人的编程小助手,今天要带你们一起探讨在Go语言中如何处理HTTP文件上传,让我们把这场技术之旅变得轻松有趣吧!首先,想象一下这个场景:你是一个网站的开发者,用户们急切地想要上传他们的照片、文档或者其他类型的文件到你的服务器上。文件上传,听起来就像是一个神秘的......
  • 现在前端的框架
    你现在开发android,ios,小程序用什么工具,怎么开发的?还在单个端的开发吗?今天我们主要讨论的是一次开发多端使用的技术,也是这两年比较流行的开发方向。现在的终端太多了,app两个端android和ios,小程序有微信,头条,百度,支付宝,还有wap端,如果你每个端都开发一次,成本太高了,所以一次开发解决......