微信ウィジェットのクラウドストレージ


WeChatウィジェットクラウドストレージの使用について


1、クラウドストレージを使用する理由


クラウドストレージはクラウドに頼って開発して、クラウドに基づいて開発した微信の小さいプログラムを開発する時、微信は開発者のために1枚のストレージ空間を提供して、私達はファイルをクラウドにアップロードすることができて、同時にクラウドから資源をダウンロードすることができて、ユーザーの間の相互作用を便利にしました

2、クラウドストレージ関連API


微信は2つのAPIを提供してクラウドストレージ関連の操作を行い、アップロードファイルとダウンロードファイル、wx.cloud.uploadFilewx.cloud.downloadFileを含む.この2つのAPIはすべての需要を達成することができる.

3、実例


もし私たちがユーザーがモーメンツのようなメッセージを発表する必要があるとしたら、小さなプログラムの中で、関連内容をデータベースに保存して、私たちはユーザーが発表した文字をデータベースに保存することができますが、もしユーザーが画像を送りたいならば、どのように保存して、ある人はこれがまだ簡単ではないと思って、画像のアドレスを保存して、次回直接ロードすればいいのではないでしょうか.これだけの問題は考慮されず、クラウド開発が提供する空間に直接格納されます.次は写真をクラウド関数に格納するコードです.
//          
wx.chooseImage({
  success: chooseResult => {
    //            
    wx.cloud.uploadFile({
      //          
      cloudPath: 'photo.jpg',
      //                   
      filePath: chooseResult.tempFilePaths[0],
      //     
      success: res => {
        console.log('    ', res)
      },
    })
  },
})

これはただの普通のコードで、ユーザーは1枚の写真を選んでそれを保存して、それからクラウド開発コンソールの記憶の中でその写真を見ることができますが、もしあなたがもう1枚を選ぶと、初めての写真がなくなったことに気づきます.新しい写真しかありません.これは何ですか.cloudPathという属性が見えます.名前から見ると意味がわかります.クラウドパス、つまりアップロード後の写真のクラウドストレージでのパスは、パス設定が同じで、後者は当然前のものを相殺します.

4、アップロードパスの唯一の問題


ユーザーがアップロードしたコンテンツをデータベースに保存すると、一意のインデックスが設定されます.idは、一般的にこのidが唯一なので、格納されたパス名として使用できます.
const uploadTasks = fileList.map((file, index) =>
 this.uploadFilePromise(`${res._id}.jpg`, file)  //           _id
);
Promise.all(uploadTasks)
 .then(data => {
   //wx.showToast({ title: '    ', icon: 'none' });
   Toast.success("    ");
   const fileList = data.map(item => ({ url: item.fileID }));
   console.log(data[0].fileID)
   this.setData({ cloudPath: data, fileList: fileList });
 })
 .catch(e => {
   wx.showToast({ title: '    ', icon: 'none' });
   console.log(e);
 });
}

//    
uploadFilePromise(fileName, chooseResult) {
    return wx.cloud.uploadFile({
      cloudPath: fileName,
      filePath: chooseResult.path
    });
  },