ホームページ WeChat アプレット ミニプログラム開発 WeChat アプレットを Qiniu Cloud Storage に接続する方法の例

WeChat アプレットを Qiniu Cloud Storage に接続する方法の例

May 15, 2018 pm 03:29 PM
ストレージ ドッキング アプレット

この記事では、主に小さなプログラムを Qiniu Cloud Storage に接続する方法を紹介します。編集者はそれが非常に優れていると考えたので、参考として共有します。エディターをフォローして見てみましょう

前書き:

私はしばらくの間、小さなプログラムを作成してきましたが、これまでに作成した技術的なポイントをまとめて友人に提供します。このプロジェクトでは、クラウド ドッキング ストレージを必要とする画像ストレージ、ビデオ ストレージ、録画ストレージの 3 種類があります。

1. Qiniu ドッキング用の写真/ビデオ/録音をアップロードします

準備作業:

a 本名認証後、Qiniu のパーソナルセンターに秘密があります。キー管理 - アップロードに必要な秘密キーのペアが含まれています。この秘密キーのペアはバックエンドで構成されます。許可されるアップロード形式を設定することも、任意の形式でアップロードするように設定することもできます。さらに、Qiniu のオブジェクト ストレージに新しいストレージ スペースを作成する必要があります。アップロードするファイルは、作成したスペースに保存されます。管理を容易にしたい場合は、写真/ビデオ用のストレージ スペースを作成することもできます。録音/その他。この記憶域スペース名はバックエンドでも構成する必要があります。

b. 1 つのファイルのアップロードに対応するアップロード トークンが必要です。トークンのアップロードも時間に左右されます。バックエンドの構成には 1 時間かかりますが、アップロード操作を完了するには十分な時間です。このトークンは独自のバックエンドによって生成され、フロントエンドはトークンを取得するためにインターフェイスを調整します。または、私のように [uptokenURL] のすぐ後ろにインターフェイスをスローするだけで、Qiniu が自動的にトークンを取得します。最初に自分たちでトークンを取得してから、それを Qiniu にスローすることもできます。

uptokenURL:'https://get.qiniutoken.com/minibx/geo_f/gain_qn_toke',
uploadURL:'https://up.qbox.me',//华东
ログイン後にコピー
uptoken: token,uploadURL:'https://up.qbox.me',//华东
ログイン後にコピー

c. Qiniu の js ファイル qiniuUploader.js は、以下の Qiniu アドレスからダウンロードできます。中には小さなプログラム用の SDK があり、それを解凍し、その中にある qiniuUploader.js をアップロードする必要があるページにインポートします。 https://developer.qiniu.com/sdk#community-sdk

1. 写真のアップロード Qiniu

ミニプログラムメソッドを通じて、ユーザーはローカル写真を追加したり、写真を撮ったりすることができ、一時的なメソッドを取得します。画像へのパス。画像を配列で保持できるため、Qiniu をアップロードするときにキューの形式でアップロードされます。

constqiniuUploader = require("../../libs/qiniuUploader.js");

var sourceType = [['camera'], ['album'], ['camera','album']];

var sizeType = [['compressed'], ['original'], ['compressed','original']];

var imageArray = [];// 点击事件,从本地相册选择图片或使用相机拍照。

chooseImage: function (e) {

var that =this;

wx.chooseImage({

  sourceType: sourceType[this.data.sourceTypeIndex],

  sizeType: sizeType[this.data.sizeTypeIndex],

  count:this.data.count[this.data.countIndex],//这个count可以用来删除当前图片

  success: function (res) {

  // 返回照片的本地文件路径,tempFilePath可以作为img标签的src属性显示图片vartempFilePaths = res.tempFilePaths;

  imageArray.push(tempFilePaths);

  that.setData({

  imageList: tempFilePaths

  })

  that.pictureUploadqiniuMethod(imageArray,"tupian_");

  },

})

},

//得到图片路径数组后,准备上传七牛

pictureUploadqiniuMethod: function (imageArray, fileHead){

var that =this;

for(vari =0; i < imageArray.length; i++) {

  var filePath = imageArray[i];

  var imgName = filePath.substr(30,50);

  qiniuUploader.upload(filePath, (res) => {

  //上传成功,上传成功一张图片,进入一次这个方法,也就是返回一次

   console.log(res)

},

(error) => {

  //图片上传失败,可以在七牛的js里面自己加了一个err错误的返回值console.log(&#39;error: &#39;+ error)

},

{

  domain:&#39;oqxfq54dn.bkt.clouddn.com&#39;,

  uptokenURL:&#39;https://get.qiniutoken.com/minibx/geo_f/gain_qn_token&#39;,

  uploadURL:&#39;https://up.qbox.me&#39;,//华东key: fileHead + imgName,// 自定义文件 keyregion:&#39;ECN&#39;,

});

}

},
ログイン後にコピー

Qiniu qiniuUploader.js ファイル内にあるコードは、このようにアップロードが成功したにもかかわらずデータが返されないことを防ぐために if 判定を追加しました。コードの 112 は、エラーを直接報告するためのものではありません。

説明:

imageArray: アップロードされる画像の一時アドレスの配列。

fileHead: アップロードされた Qiniu ファイル名のヘッダーをカスタマイズします。写真/ビデオ/録画/その他など、アップロードされたファイルを区別するために、

imgName: フロントエンド処理のために、アップロードされた Qiniu ファイル名をカスタマイズします。一時パス (filePath) の 30 ~ 50 文字は、Qiniu に保存されるファイル名として使用されます。同じ画像を 2 つ追加した場合でも、ミニ プログラムによって与えられる一時パスは異なります。重複した名前を付けないでください。

ドメイン: リソースをダウンロードするときに使用されます。設定されている場合、アップロード後に成功時に返される res.ImageURL フィールドは、http で直接アクセスできるファイル アドレスになります。それ以外の場合は、自分で結合する必要があります。

key: 最終的にQiniuに保存されるファイル名 ここでの画像ファイル名 = ファイルヘッダー(fileHead) + 疑似ファイル名(imgName)

uploadURL: Qiniuにアップロードされる保存領域、アップロード領域、およびアップロード領域のコードが対応している必要があります。

地域: 地域コードをアップロードします。

shouldUseQiniuFileName: Qiniu がアップロードされたファイル名を定義するかどうかを示します。 true の場合、ファイル キーは qiniu サーバーによって割り当てられます (グローバル重複排除)。デフォルトは false で、これは独自に定義されています。キーが設定されている場合、優先度が最も高くなります。

Qiniu ストレージ領域テーブル:

このように、アップロードする必要があるページで QiniuUploader.js を呼び出すことで、QiniuUploader.js をアップロードできます。

発生する問題:

特定の写真/ビデオ/録画のアップロードに失敗する考えられる理由:

①アップロードされたファイルはバックエンドで許可されているサイズではなく、画像は通常 3M より小さいです。私のビデオ/録画制限は 1M 未満です

②アップロードされたファイル形式はバックエンドで許可されていません。

③トークンの取得に失敗しました。たとえば、私が遭遇したのは、Qiniu の qiniuUploader.js ファイルがインターフェイスを通じてトークンを取得しており、バックエンド インターフェイスによって返されるトークンが次のとおりであるということです。このように

そのため、Qiniu の js ファイルを [var token = res.data.extra;] に変更するか、バックエンドに変更させる必要があります。

2. 動画のアップロード Qiniu

動画のアップロードと画像のアップロードは同じ手順ですが、ファイル形式は異なります。複数の画像とは異なり、動画はキューにアップロードする必要があります。次のようにビデオをアップロードします:

//事件绑定,添加视频

chooseVideo: function (res) {

  var that =this;

  wx.chooseVideo({

    sourceType: sourceType[this.data.sourceTypeIndex],

    camera: camera[this.data.cameraIndex],

    maxDuration: duration[this.data.durationIndex],

    success: function (res) {

    var shipinFile= res.tempFilePath;

    that.setData({

    src: shipinFile

  });

    //用户寻选择好图片后,调用上传方法
  
    that.shipinUploadqiniuMethod(shipinFile,"shipin_");

    }

  })

},

//视频上传七牛

shipinUploadqiniuMethod: function (shipinFile, fileHead){

    var that =this;

    var shipinName = shipinFile.substr(30,50);
  
    qiniuUploader.upload(shipinFile, (res) => {

    //视频上传成功console.log(res)

  },

  (error) => {

    //视频上传失败,可以在七牛的js里面自己加了一个err错误的返回值

    console.log(&#39;error: &#39;+ error)

  },

  {

    domain:&#39;oqxfq54dn.bkt.clouddn.com&#39;,
  
    uptokenURL:&#39;https://get.qiniutoken.com/minibx/geo_f/gain_qn_token&#39;,
  
    uploadURL:&#39;https://up.qbox.me&#39;,//华东

    key: fileHead + shipinName ,// 自定义文件 keyregion:&#39;ECN&#39;,//华东区域代码});

  }

},
ログイン後にコピー

3、录音文件上传七牛

小程序的录音格式为silk,录音上传七牛,可以和视频共用一个方法。但虽然上传成功了,状态码为403,七牛没有返回data,像这样:

 正常上传时,能正常返回data,并且状态码是200

后端配置silk格式允许,这样应该是没问题的。

上传成功七牛却没有返回data,这个data里有文件传七牛那边在线地址,不返回我们怎么访问了。现在的处理是:把音频文件传到自己服务器。目前就只能这么办了。

以上がWeChat アプレットを Qiniu Cloud Storage に接続する方法の例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

ファーウェイは革新的なMEDストレージ製品を来年発売予定:ラック容量は10PBを超え、消費電力は2kW未満 ファーウェイは革新的なMEDストレージ製品を来年発売予定:ラック容量は10PBを超え、消費電力は2kW未満 Mar 07, 2024 pm 10:43 PM

このウェブサイトは3月7日、ファーウェイのデータストレージ製品ラインの社長である周岳峰博士が最近MWC2024カンファレンスに出席し、特にウォームデータ(WarmData)とコールドデータ(ColdData)用に設計された新世代のOceanStorArctic磁電ストレージソリューションをデモンストレーションしたと報じた。ファーウェイのデータストレージ製品ラインの社長である周岳峰氏は、一連の革新的なソリューションをリリースした 画像出典: このサイトに添付されているファーウェイの公式プレスリリースは次のとおりです: このソリューションのコストは磁気テープのコストより 20% 低く、そのコストは磁気テープのコストよりも 20% 低くなります。消費電力はハードディスクよりも90%低いです。外国のテクノロジーメディアのblocksandfilesによると、ファーウェイの広報担当者も磁気電子ストレージソリューションに関する情報を明らかにした:ファーウェイの磁気電子ディスク(MED)は磁気ストレージメディアの主要な革新である。初代ME

Vue3+TS+Vite 開発スキル: データを暗号化して保存する方法 Vue3+TS+Vite 開発スキル: データを暗号化して保存する方法 Sep 10, 2023 pm 04:51 PM

Vue3+TS+Vite 開発のヒント: データを暗号化して保存する方法 インターネット技術の急速な発展に伴い、データ セキュリティとプライバシー保護がますます重要になっています。 Vue3+TS+Vite 開発環境では、データをどのように暗号化して保存するかが、すべての開発者が直面する必要がある問題です。この記事では、開発者がアプリケーションのセキュリティとユーザー エクスペリエンスを向上させるのに役立つ、一般的なデータ暗号化とストレージのテクニックをいくつか紹介します。 1. データ暗号化 フロントエンド データ暗号化 フロントエンド暗号化は、データ セキュリティを保護するための重要な部分です。よく使われる

WeChat ミニ プログラムにカードめくり効果を実装する WeChat ミニ プログラムにカードめくり効果を実装する Nov 21, 2023 am 10:55 AM

WeChat ミニ プログラムでのカードめくり効果の実装 WeChat ミニ プログラムでは、カードめくり効果の実装は、ユーザー エクスペリエンスとインターフェイス インタラクションの魅力を向上させることができる一般的なアニメーション効果です。以下では、WeChat アプレットでカードめくりの特殊効果を実装する方法と、関連するコード例を詳しく紹介します。まず、ミニ プログラムのページ レイアウト ファイルに 2 つのカード要素を定義する必要があります。1 つは前面のコンテンツを表示するため、もう 1 つは背面のコンテンツを表示するためです。具体的なサンプル コードは次のとおりです: &lt;!--index.wxml- ->&l

アリペイ、希少文字ライブラリを収集・補完する「漢字拾い-希少文字」ミニプログラムを開始 アリペイ、希少文字ライブラリを収集・補完する「漢字拾い-希少文字」ミニプログラムを開始 Oct 31, 2023 pm 09:25 PM

10月31日の当サイトのニュースによると、今年5月27日、アント・グループは「漢字拾いプロジェクト」の立ち上げを発表し、最近新たな進展を迎えた:アリペイが「漢字拾い-珍しい文字」ミニプログラムを開始協会からコレクションを収集する レア文字は、レア文字ライブラリを補完し、アリペイでのレア文字入力方法の改善に役立つように、レア文字に異なる入力エクスペリエンスを提供します。現在、ユーザーは「漢字ピックアップ」「珍文字」などのキーワードで検索することで「珍文字」アプレットに入ることができる。ミニプログラムでは、ユーザーがシステムで認識・入力されなかった珍しい文字の画像を送信し、確認後、Alipay のエンジニアがフォントライブラリに追加エントリを作成します。当サイトでは、発音が不明瞭な珍しい単語を対象とした最新の単語分割入力方法をミニプログラムで体験できることに注目しました。ユーザー解体

Ubuntu での Git インストール プロセス Ubuntu での Git インストール プロセス Mar 20, 2024 pm 04:51 PM

Git は、高速で信頼性が高く、適応性に優れた分散バージョン管理システムです。分散型の非線形ワークフローをサポートするように設計されており、あらゆる規模のソフトウェア開発チームに最適です。各 Git 作業ディレクトリは、すべての変更の完全な履歴を備えた独立したリポジトリであり、ネットワーク アクセスや中央サーバーがなくてもバージョンを追跡できます。 GitHub は、分散リビジョン管理のすべての機能を提供する、クラウド上でホストされる Git リポジトリです。 GitHub は、クラウド上でホストされる Git リポジトリです。 CLI ツールである Git とは異なり、GitHub には Web ベースのグラフィカル ユーザー インターフェイスがあります。これは、他の開発者との共同作業や、スクリプトへの変更の追跡などのバージョン管理に使用されます。

uniapp がミニ プログラムと H5 の間で迅速な変換を実現する方法 uniapp がミニ プログラムと H5 の間で迅速な変換を実現する方法 Oct 20, 2023 pm 02:12 PM

uniapp がミニ プログラムと H5 の間で迅速な変換を実現するには、具体的なコード例が必要ですが、近年、モバイル インターネットの発展とスマートフォンの普及に伴い、ミニ プログラムと H5 は不可欠なアプリケーション形式となっています。クロスプラットフォーム開発フレームワークとして、uniapp は一連のコードに基づいて小規模プログラムと H5 間の変換を迅速に実現し、開発効率を大幅に向上させます。この記事では、uniapp がミニ プログラムと H5 の間で迅速な変換を実現する方法と、具体的なコード例を紹介します。 1. uniapp uniaの紹介

ミニプログラム登録の操作方法 ミニプログラム登録の操作方法 Sep 13, 2023 pm 04:36 PM

ミニ プログラムの登録操作手順: 1. 個人 ID カード、法人営業許可証、法人 ID カードおよびその他の提出資料のコピーを準備します; 2. ミニ プログラム管理のバックグラウンドにログインします; 3. ミニ プログラム設定ページに入ります; 4. 「基本設定」を選択; 5. 出願情報を入力; 6. 出願資料をアップロード; 7. 出願申請を送信; 8. 審査結果を待ちます。出願が不合格の場合は、理由に応じて修正してください9. 出願のフォローアップ操作は可能です。

sessionStorage を正しく使用して機密データを保護する方法 sessionStorage を正しく使用して機密データを保護する方法 Jan 13, 2024 am 11:54 AM

sessionStorage を正しく使用して機密情報を保存する方法には、特定のコード サンプルが必要です。Web 開発でもモバイル アプリケーション開発でも、ユーザーのログイン資格情報や ID 番号などの機密情報を保存して処理する必要があることがよくあります。フロントエンド開発では、sessionStorage の使用が一般的なストレージ ソリューションです。ただし、sessionStorage はブラウザベースのストレージであるため、保存されている機密情報が悪意を持ってアクセスされ、使用されないように、いくつかのセキュリティ問題に注意を払う必要があります。

See all articles