c语言编程笔录

首页 >   > 笔记大全

笔记大全

uniAPP不支持oss如何办

更新时间:2023-10-19

前言

在使用uniAPP开发过程中,遇到oss不支持的情况是很常见的,因此需要寻找其他的解决方案。本文将介绍一些替代oss的解决方案,并提供代码示例来帮助读者更好地理解和实践相关内容。

使用第三方云存储

一种解决方案是使用第三方云存储,如七牛云、腾讯云等。社区已经有不少第三方库支持这些云存储的集成,如uni-oss、uni-upload等,这些库可以非常方便地从客户端上传到第三方云存储中,大大减轻了我们的工作量。

import uniUpload from '@/components/uni-upload/uni-upload.vue'

export default {
  components: { uniUpload },
}
    

这里以uni-upload为例,使用方法如下:




    

使用本地存储

另一种解决方案是使用本地存储。uniAPP支持本地文件存储、localStorage存储、indexedDB存储等方式,可根据实际情况选择使用。比如,如果只是简单地存储一些小文件,可以考虑使用localStorage;如果需要存储更复杂的文件信息,可以使用indexedDB。

// 使用localStorage存储文件
localStorage.setItem('file', file)

// 使用indexedDB存储文件
let request = indexedDB.open('database')
request.onerror = function (e) {
  console.log('Open error!');
}
request.onsuccess = function (e) {
  let database = e.target.result
  let objectStore = database.createObjectStore('storeName', { keyPath: 'key' })
  objectStore.createIndex('key', 'key', { unique: true })
  
  let transaction = database.transaction(['storeName'], 'readwrite')
  let store = transaction.objectStore('storeName')
  store.put({ key: 'file', value: file })
} 
    

总结

通过本文介绍的两种解决方案,我们可以解决uniAPP不支持oss的情况。第一种是使用第三方云存储,通过uni-oss等第三方插件方便地上传文件;第二种是使用本地存储,可根据实际情况选择使用localStorage、indexedDB存储等方式。这些解决方案都有其自身的优劣点,需要根据实际场景灵活选择。