Vue 前台 直传图片到OSS 一直报400错误

1、前端通过OSS 来上传图片修改头像 报 400

clipboard.png

handleFile(event) {
            var client = new OSS({
                region: OSSConfig.ossParams.region,
                accessKeyId: OSSConfig.ossParams.accessKeyId,
                accessKeySecret: OSSConfig.ossParams.accessKeySecret,
                bucket: OSSConfig.ossParams.bucket,
            })
            var file = event.currentTarget.files[0]
            let random_name = `${this.random_string(
                6,
            )}_${new Date().getTime()}.${file.name}`
            // 上传
            // client
            //     .multipartUpload(random_name, file, {
            //         progress: async function(p) {
            //             console.log('Progress: ' + p)
            //         },
            //         meta: {
            //             year: 2018,
            //             people: 'test',
            //         },
            //         mime: 'image/png',
            //     })
            //     .then(results => {
            //         // 上传完成
            //         const url = `${OSSConfig.uploadHost}/${results.name}`
            //         console.log(url)
            //     })
            //     .catch(err => {
            //         console.log(err)
            //     })
            this.multipartUpload(client, random_name, file)
        },
        async multipartUpload(client, random_name, file) {
            try {
                let result = await client.multipartUpload(random_name, file, {
                    progress: async function(p) {
                        console.log('Progress: ' + p)
                    },
                    meta: {
                        year: 2018,
                        people: 'test',
                    },
                    mime: 'image/png',
                })
                console.log(result)
                let head = await client.head(random_name)
                console.log(head)
            } catch (e) {
                // 捕获超时异常
                if (e.code === 'ConnectionTimeoutError') {
                    console.log('Woops,超时啦!')
                    // do ConnectionTimeoutError operation
                }
                console.log(e)
            }
        },
        // 随机生成文件名
        random_string(len) {
            len = len || 32
            var chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678'
            var maxPos = chars.length
            var pwd = ''
            for (let i = 0; i < len; i++) {
                pwd += chars.charAt(Math.floor(Math.random() * maxPos))
            }
            return pwd
        },

写法换了N种 但是结果都是一样 问题的根源没有找到。

阅读 4.9k
1 个回答

原来是bucket写错了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题