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

微信小程序將資源上傳阿里云OSS

這篇具有很好參考價值的文章主要介紹了微信小程序將資源上傳阿里云OSS。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

? ? 我們在實際業(yè)務中經常能遇到將各種資源上傳到云服務器,這樣做第一是能更好的管理我們的比如圖片資源,視頻,音頻資源等,同時也能節(jié)約公司的網絡帶寬,減少各種資源隨著時間的推移資源越來越多造成服務器的硬盤壓力過大。還有一個重要的原因是可以保護我們的資源被其他人盜用的問題.下面我就來介紹在小程序中如何將各種資源直傳到阿里云OSS。話不多說直接上代碼?

小程序 index.js??

在每次調用讀取文件之前之前,需要重新獲得零時授權,防止授權憑證過期導致無法上傳

import UploadAliOss from "../../common/aliyunOss/uploadOssClass";
const AliyunOss = new UploadAliOss();

  // 讀取文件之前  需要重新獲得零時授權  
    async beforeRead(event) {
        await AliyunOss.GetOSSKeyInfo();
        Toast.loading({
            message: '上傳中...',
            forbidClick: true,
            duration: 0
        });
        event.detail.callback(true);
    },

讀取文件之后調用上傳方法,

  // 文件讀取完成后
    async afterRead(event) {
        const {
            file
        } = event.detail;
        const {
            Code,
            Data
        } = await AliyunOss.uploadFile(file.url)
        console.log("AliyunOss.uploadFile", Code, Data);
        if (Code == 200) {
            const imgInfo = new ImgClass(BaseImgUrl + Data);
            Toast.clear();
            this.setData({
                fileList: [...this.data.fileList, imgInfo]
            })
        } else {
            Toast.fail('上傳失敗');
        }

    },

uploadOssClass.js? 注意?uploadImageUrl 這個地址需要配置到,合法域名中文章來源地址http://www.zghlxwxcb.cn/news/detail-543751.html

const crypto = require('crypto.js');
const base64 = require('base64.js'); // Base64,hmac,sha1,crypto相關算法

import {
    GetOSSKey
} from "../../api/api";

const uploadImageUrl = "xxxxxxxx"; //你的阿里云OSS地址  在你當前小程序的公眾號后臺的uploadFile 合法域名也要配上這個域名

class UploadAliOss {
    constructor(options = {}) {
        // 限制參數(shù)的生效時間,單位為小時,默認值為1。
        this.timeout = options.timeout || 1;
        // 限制上傳文件的大小,單位為MB,默認值為10。
        this.maxSize = options.maxSize || 10;
    }
    // 服務端獲取上傳秘鑰 和 臨時授權
    async GetOSSKeyInfo() {
        const result = await GetOSSKey();
        this.securityToken = JSON.parse(result).SecurityToken;
        this.accessKeyId = JSON.parse(result).AccessKeyId;
        this.accessKeySecret = JSON.parse(result).AccessKeySecret;
    };
    // 上傳文件  filePath 文件的臨時地址 dir 文件夾 生成的文件反正那個文件夾下 方便管理
    uploadFile(filePath, dir = "xlya") {
        return new Promise((resolve, reject) => {
            if (!filePath) {
                reject({
                    Code: 501,
                    Msg: "上傳失敗,請稍后再試"
                })
                return
            }
            // 設置文件存放的地址以及為文件命名 隨機數(shù)防止文件重名被覆蓋
            const aliyunFileKey = dir + "/" + new Date().getTime() + Math.floor(Math.random() * 150);
            wx.uploadFile({
                url: uploadImageUrl, //開發(fā)者服務器 url
                filePath: filePath, //要上傳文件資源的路徑
                name: 'file', //必須填file
                formData: {
                    'key': aliyunFileKey, // 設置文件上傳至OSS后的文件路徑
                    'success_action_status': '200',
                    ...this.getUploadParams()
                },
                success: function (res) {
                    if (res.statusCode == 200) {
                        resolve({
                            Code: 200,
                            Data: "/" + aliyunFileKey
                        })
                    } else {
                        reject({
                            Code: 501,
                            Msg: "上傳失敗,請稍后再試"
                        })
                    }
                },
                fail: function (err) {
                    reject({
                        Code: 501,
                        Msg: "上傳失敗,請稍后再試"
                    })
                },
            })
        })
    }
    // 獲取上傳接口需要的參數(shù)
    getUploadParams() {
        const policy = this.getPolicyBase64();
        const signature = this.signature(policy);
        return {
            OSSAccessKeyId: this.accessKeyId,
            policy: policy,
            signature: signature,
            'x-oss-security-token': this.securityToken,
        };
    }
    getPolicyBase64() {
        let date = new Date();
        // 設置policy過期時間。
        date.setHours(date.getHours() + this.timeout);
        let srcT = date.toISOString();
        const policyText = {
            expiration: srcT,
            conditions: [
                // 限制上傳文件大小。
                ["content-length-range", 0, this.maxSize * 1024 * 1024],
            ],
        };
        return base64.encode(JSON.stringify(policyText));
    }
    // 獲取簽名
    signature(policyBase64) {
        const accesskey = this.accessKeySecret;
        const bytes = crypto.HMAC(crypto.SHA1, policyBase64, accesskey, {
            asBytes: true
        });
        const signature = crypto.util.bytesToBase64(bytes);
        return signature;
    }

}

export default UploadAliOss

到了這里,關于微信小程序將資源上傳阿里云OSS的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

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

領支付寶紅包贊助服務器費用

相關文章

  • 阿里云OSS-小程序文件直傳(支持微信小程序、H5、PC端web使用)

    阿里云OSS-小程序文件直傳(支持微信小程序、H5、PC端web使用)

    支持微信小程序、H5、PC端web使用,整套文件進行封裝統(tǒng)一使用 開發(fā)背景:做類似發(fā)布朋友圈的功能需求,由于后端對發(fā)布功能只提供一個接口,文字、狀態(tài)、文件上傳統(tǒng)一一個接口上傳,且對文件上傳方面做的接口存在諸多問題(人已經整麻了),包括各種數(shù)據結構的轉換

    2024年02月07日
    瀏覽(64)
  • 微信小程序文件直接上傳阿里云OSS

    第一步 配置Bucket跨域訪問 第二步 微信小程序配置域名白名單 以上兩步,請參考阿里云官網, 如何在微信小程序環(huán)境下將文件上傳到OSS_對象存儲 OSS-阿里云 https://help.aliyun.com/document_detail/92883.html 安裝依賴 wx-oss-upload 然后創(chuàng)建自己的上傳方法,引用 wx-oss-upload ?然后在選取文

    2024年02月11日
    瀏覽(23)
  • 對象存儲OSS(微信小程序直傳實踐)

    對象存儲OSS(微信小程序直傳實踐)

    客戶端進行表單直傳到OSS時,會從瀏覽器向OSS發(fā)送帶有Origin的請求消息。OSS對帶有Origin頭的請求消息會進行跨域規(guī)則(CORS)的驗證。因此需要為Bucket設置跨域規(guī)則以支持Post方法。 登錄阿里云OSS管理控制臺 單擊 Bucket列表 ,然后單擊目標Bucket名稱 在左側導航欄,選擇 權限管

    2024年02月11日
    瀏覽(15)
  • vue+iviewUi+oss直傳阿里云上傳文件

    vue+iviewUi+oss直傳阿里云上傳文件

    用戶獲取oss配置信息將文件上傳到阿里云,保證了安全性和減輕服務器負擔。一般文件資源很多直接上傳到服務器會加重服務器負擔此時可以選擇上傳到oss,輕量型的應用可以直接將文件資源上傳到服務器就行。廢話不多說,下面開始總結本人上傳到oss的踩坑之旅。 1、第一

    2024年02月13日
    瀏覽(19)
  • 如何使用阿里云OSS進行前端直傳以及分片上傳

    在使用阿里云OSS進行前端直傳時,首先我們需要去阿里云官網注冊自己的存儲桶,然后申請相關的accessKeyId和accessKeySecret,然后新建一個桶,為這個桶命名以及選擇對應的地區(qū)。 然后可以根據自己的業(yè)務,封裝對應的組件,以下是根據我自己的項目,所封裝的上傳組件,所用

    2024年02月21日
    瀏覽(22)
  • 微信小程序上傳文件(圖片)至阿里云OSS,包含后端代碼示例。

    微信小程序上傳文件(圖片)至阿里云OSS,包含后端代碼示例。

    ps:本文較為詳細,需要有耐心的閱讀,要是圖片看不清楚可以下載到本地放大查看。 寫這篇博客的主要目的是因為serverless架構下直接上傳圖片只能轉base64,且body大小有限制 一、在阿里云創(chuàng)建RAM用戶與角色 1.為什么要使用RAM用戶? 云賬號 AccessKey 是您訪問阿里云 API 的密鑰,具

    2024年02月04日
    瀏覽(27)
  • 微信小程序使用阿里云oss設置上傳文件的content-type

    圖片文件上傳到阿里云oss的默認訪問content-type是jpge,這個格式在瀏覽器不能直接打開,需要手動設置上傳的content-type 參考鏈接 UploadTask wx.uploadFile(Object object) OSS調用PostObject用于通過HTML表單上傳的方式將文件(Object)上傳到指定存儲空間(Bucket)。 阿里OSS 上傳圖片 springboo

    2024年02月12日
    瀏覽(29)
  • uniapp - [小程序 / H5網頁] “純前端“ 將文件上傳到阿里云 OSS,全端通用的阿里云 OSS 直傳音視頻、圖片、word、excel、ppt、office 文檔(全程無需后端穩(wěn)定可靠)

    uniapp - [小程序 / H5網頁] “純前端“ 將文件上傳到阿里云 OSS,全端通用的阿里云 OSS 直傳音視頻、圖片、word、excel、ppt、office 文檔(全程無需后端穩(wěn)定可靠)

    網上的教程亂七八糟各種坑,而且 uniapp 各個端都是不同的教程,對于新手來說真的無從下手。 本文站在新手小白的角度, 實現(xiàn) uniapp 小程序 / H5 網頁等平臺的開發(fā)中,“前端直傳” 上傳文件到阿里云oss對象存儲的詳細教程,通用的 “OSS 上傳器”,幾乎全平臺都可以使用!

    2024年02月12日
    瀏覽(73)
  • 前端通過STS方式直傳至阿里云OSS(包含文件上傳、下載和自動刷新stsToken)

    最近項目業(yè)務需要實現(xiàn)一個資源管理的功能,就簡單學習了一下前端怎么使用阿里云OSS。 原本這些事情都是后端實現(xiàn)的,但這樣子有許多缺點,比如文件上傳需要走兩次,先上傳到后端,再由后端上傳至阿里云OSS,既占用帶寬也浪費時間;此外,前端還不能獲取到真正的上傳

    2024年01月19日
    瀏覽(31)
  • 如何使用阿里云OSS進行前端直傳

    在使用阿里云OSS進行前端直傳時,首先我們需要去阿里云官網注冊自己的存儲桶,然后申請相關的accessKeyId和accessKeySecret,然后新建一個桶,為這個桶命名以及選擇對應的地區(qū)。 然后可以根據自己的業(yè)務,封裝對應的組件,以下是根據我自己的項目,所封裝的上傳組件,所用

    2024年02月21日
    瀏覽(18)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包