阿里云OSS文件上传

news/2024/7/10 2:50:57 标签: 阿里云, 云计算, 前端, vue, 文件上传

通常在做前端开发时,对于文件上传的功能,通常把那些大文件的视频或者音频一般是传到阿里云或者腾讯云,因为这样也可以减少公司本地服务器的空间,举个例子阿里云OSS文件上传的步骤

<template>
  <div>
    <h1>阿里云OSS文件上传示例</h1>
    <input type="file" @change="handleFileChange" />
    <button @click="uploadFile">上传文件</button>
    <div v-if="uploadProgress > 0">
      上传进度: {{ uploadProgress }}%
    </div>
    <div v-if="uploadResult">
      文件上传成功!
      文件URL: {{ uploadResult.url }}
    </div>
  </div>
</template>

<script>
import OSS from 'ali-oss';

export default {
  data() {
    return {
      file: null,
      uploadProgress: 0,
      uploadResult: null
    };
  },
  methods: {
    handleFileChange(event) {
      this.file = event.target.files[0];
    },
    uploadFile() {
      if (!this.file) {
        return;
      }

      // 初始化OSS对象
      const client = new OSS({
        accessKeyId: 'your-access-key-id',
        accessKeySecret: 'your-access-key-secret',
        region: 'your-oss-region',
        bucket: 'your-bucket-name'
      });

      // 设置上传回调函数
      const options = {
        progress: (percentage, checkpoint, res) => {
          this.uploadProgress = Math.floor(percentage * 100);
        }
      };

      // 开始文件上传
      client.put('your-oss-path/' + this.file.name, this.file, options)
        .then(result => {
          this.uploadResult = result;
        })
        .catch(error => {
          console.error(error);
        });
    }
  }
};
</script>




请确保在使用之前先安装ali-oss库,并替换代码中的your-access-key-id、your-access-key-secret、your-oss-region和your-bucket-name与有效的阿里云OSS信息。

在该示例中,我们通过<input type="file">标签选择文件,
并通过handleFileChange方法将文件保存到file数据属性中。
然后,我们通过点击<button>触发uploadFile方法,该方法使用阿里云OSS SDK将文件上传阿里云OSS,
并通过数据属性uploadProgress跟踪上传进度,最后将上传结果保存到uploadResult数据属性中。

你可以根据自己的项目需求对该示例进行调整和扩展。


http://www.niftyadmin.cn/n/5133189.html

相关文章

【esp32]VSCode-SPI控制OLED

根据Adafruit_GFX第三方库&#xff0c;其drawPixel方法由子类实现 代码&#xff1a;在OLED实现函数功能 先声明类 SPI库和Adafruit库、SSD1306 #include <Arduino.h> #include <SPI.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> …

el-input 给icon图标绑定点击事件

选择suffix-icon&#xff0c;添加点击事件 <temeplate><el-form-item :label"$t(company[Company address])" prop"address"><el-input v-model"enterpriseForm.address"><i slot"suffix" class"el-icon-m…

股票和可转债的差异

股票和可转债是两种不同的投资工具&#xff0c;它们在投资性质、风险和收益、投资策略等方面存在一定的差别。本文将从以下几个方面对股票和可转债进行差别分析。 一、投资性质 股票是公司发行的一种所有权凭证&#xff0c;代表了股东对公司的所有权。股东通过购买股票成为公…

uniapp vue国际化 i18n

一、安装 vue-i18n npm i vue-i18n 二、新建i18n目录 1、en.json 内容 {"loginPage":{"namePh":"Please enter your login account","passwordPh":"Please enter password"} } 2、zh-CN.json 内容 {"loginPage&qu…

私有云:【12】使用connention托管虚拟桌面

私有云&#xff1a;【12】使用connention托管虚拟桌面 1、使用connention托管虚拟桌面 1、使用connention托管虚拟桌面 使用cloudadmin用户登录connection服务器 登录connection客户端 创建桌面池 选择手动桌面池 选择vcenter虚拟机 选择vcenter.test.com 按如下选择下一步 设…

安卓系统怎样监听系统值的改变?

标签&#xff1a; 安卓系统怎样监听系统值的改变&#xff1f;&#xff1b; 安卓系统系统值改变后执行相应动作&#xff1b; 怎样实现对安卓系统属性值改变的监听&#xff0c;并执行相应动作。 安卓监听系统属性值有多种方法&#xff0c;以下是其中一个行之有效方法&#xff0…

【自然语言处理】【长文本处理】RMT:能处理长度超过一百万token的Transformer

相关博客 【自然语言处理】【长文本处理】RMT&#xff1a;能处理长度超过一百万token的Transformer 【自然语言处理】【大模型】MPT模型结构源码解析(单机版) 【自然语言处理】【大模型】ChatGLM-6B模型结构代码解析(单机版) 【自然语言处理】【大模型】BLOOM模型结构源码解析(…

VS2022将编码方式设置为UTF-8的一种方法

一、首先在VS2022的菜单栏中找到Tools/Customize。 二、在弹出的对话框中选择Commands标签&#xff0c;Menu bar中选择File&#xff0c;点击Add Command按钮。 三、在弹出的Add Command对话框中选择左侧Categories栏中选择File&#xff0c;在Commands栏中选择Advanced Save Opt…