使用阿里云OSS 实现图片上传 -- 删除

安装ali-oss插件

1.安装 oss 依赖包
npm install ali-oss --save

新建oss.js

2.新建 oss.js 
// 引入ali-oss
let OSS = require('ali-oss')
/**
阿里云配置
 *  [accessKeyId] {String}:通过阿里云控制台创建的AccessKey。
 *  [accessKeySecret] {String}:通过阿里云控制台创建的AccessSecret。
 *  [bucket] {String}:通过控制台或PutBucket创建的bucket。
 *  [region] {String}:bucket所在的区域, 默认oss-cn-hangzhou。
 */
export function client() {  return new OSS({
    region: '',
    accessKeyId: '',
    accessKeySecret:  '',
    bucket: ''
  })
}

/**
 * 生成随机文件名称
 * 规则八位随机字符,加下划线连接时间戳
 */
export const getFileNameUUID = () => {
  function rx() {
    return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1)
  }
  return `${+new Date()}_${rx()}${rx()}`
}

使用el-upload

3.在页面中使用el-upload组件
<el-form-item label="视频/图片上传" prop="Video">
		<el-upload action :http-request="Upload" :on-preview="handlePreview" :before-remove="beforeRemove" :on-remove="handleRemove"
					 :on-success="handleSuccess" :on-exceed="handleExceed" drag :limit="limit" :file-list="fileList">
				<i class="el-icon-upload"></i>
				<div class="el-upload__text">
					将文件拖到此处,或
					<em>点击上传</em>
				</div>
			<div slot="tip" class="el-upload__tip">上传文件大小不能超过 1G</div>
		</el-upload>

		<el-progress v-show="showProgress" :text-inside="true" :stroke-width="15" :percentage="progress"></el-progress>

</el-form-item>

在需要的地方引入oss.js

4.在script标签中引入刚才新建的oss.js文件
import {client,getFileNameUUID} from "../stroe/oss"; //client,getFileNameUUID是前面的oss.js文件内的两个封装函数
	export default {
		name: "Upload",
		props: {
			limit: {
				type: Number,
				default: 1
			}
		},
		data(){
		return {
		  fileList: [], //文件列
		  showProgress: false, //进度条的显示
		  dataObj: {}, //存签名信息
		  progress: 0 //进度条数据
		  }
		}
  }

在el组件

el-upload中需要这个特别重要,图片回显
Upload(file) {
				const that = this;
				async function multipartUpload() {
					let temporary = file.file.name.lastIndexOf(".");
					let fileNameLength = file.file.name.length;
					let fileFormat = file.file.name.substring(
						temporary + 1,
						fileNameLength
					);
					let fileName = getFileNameUUID() + "." + fileFormat;
					client(that.dataObj)
						.multipartUpload(`image/${fileName}`, file.file, 
						//这个的话看情况有域名了,就不需要加,
						{
                  headers: {
                 "Content-Type": "img/jpg",
                },
						)
						.then(result => {
							//上传成功返回值,可针对项目需求写其他逻辑
							console.log(result);
						})
						.catch(err => {
							console.log("err:", err);
						});
				}
				multipartUpload();

			}

设置跨域

在oss里面根据需要设置

读写权限为私有的话,还有就是有需要设置权限的

删除

  try {
                let result = await client().delete(`${不要全路径}`);
                console.log("0-0", result);
              } catch (e) {
                console.log("0-1", e);
              }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 访问阿里云OSS(对象存储服务)图片失败可能有多种原因。 首先,可能是由于网络连接问题导致无法访问阿里云OSS。在网络连接不稳定、慢或中断的情况下,访问OSS图片会失败。此时,可以尝试检查网络连接,并确保网络状况良好。 其次,可能是由于OSS对象不存在或被意外删除导致无法访问。在请求访问OSS图片时,如果对象不存在,将返回错误信息。此时,可以检查对象的路径和名称是否正确,并确保对象未被删除。 另外,可能是由于访问权限限制导致无法访问OSS图片。阿里云OSS提供了丰富的权限控制机制,可以通过私有、公共读、公共读写等权限设置来控制对象的访问。如果没有正确的权限设置,可能无法正常访问OSS图片。此时,可以检查访问对象的权限设置,并确保拥有足够的访问权限。 最后,可能是由于错误的请求方式或参数导致无法访问OSS图片。在请求OSS图片时,需要正确地使用API接口、请求方法和参数。如果请求方式或参数错误,阿里云OSS将无法正确处理请求并返回相应的图片。此时,可以检查请求方式和参数是否正确,并参考阿里云OSS API文档进行调整。 综上所述,访问阿里云OSS图片失败可能是由于网络连接问题、对象不存在、访问权限限制或错误的请求方式或参数等原因导致的。可以根据具体情况检查相关因素,并采取相应的措施来解决问题。 ### 回答2: 访问阿里云OSS图片失败可能是由于多种原因引起的。 首先,可能是由于网络连接问题导致无法访问OSS图片。这可能是由于网络连接不稳定、网络信号弱或者代理服务器的问题。建议检查网络连接,确认网络正常后再次尝试访问。 其次,可能是由于OSS图片的地址设置错误导致无法访问。检查图片的URL地址是否正确,确认是否包含了正确的域名、桶名和图片路径。 此外,还可能是由于权限设置不正确导致无法访问。在阿里云OSS中,需要正确设置桶的访问权限以及图片的访问权限。确保桶的读取权限设置为公共读或者授权用户有访问权限,并且图片的权限也正确配置。 最后,还可能是由于阿里云OSS服务端故障导致无法访问。在这种情况下,建议联系阿里云客服或者开发者支持团队,寻求帮助并报告问题,他们将会及时处理并解决问题。 综上所述,访问阿里云OSS图片失败可能是由于网络连接问题、URL地址设置错误、权限设置不正确或者服务端故障等原因引起的。根据具体情况,可以逐步排查并解决问题。 ### 回答3: 当访问阿里云OSS图片失败时,可能有以下几个原因: 1. 链接错误:请确保访问阿里云OSS的链接地址正确,包括域名、路径等信息是否填写正确。 2. 访问权限限制:在阿里云OSS中,每个存储桶都有自己的访问权限设置。请确保您拥有访问该图片的权限。 3. 存储桶设置问题:您需要确认存储桶是否处于正常状态。可能是存储桶已被删除、权限设置有误等情况导致无法访问。 4. 图片不存在:如果您输入的图片路径错误或者该图片已被删除,将导致访问失败。 5. 网络问题:可能是网络连接不稳定或者网络延迟导致无法正常访问阿里云OSS。此时,您可以尝试刷新页面或者稍后再试。 6. 阿里云OSS服务端故障:可能是阿里云OSS服务端出现故障导致无法正常访问。此时,您可以联系阿里云技术支持反馈问题,等待解决。 总结起来,访问阿里云OSS图片失败可能是链接错误、访问权限限制、存储桶设置问题、图片不存在、网络问题或阿里云OSS服务端故障等原因导致的。如果您遇到该问题,可以逐一排查以上原因,找到具体原因后采取相应的解决措施。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陌寒1024

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值