Ketahui catatan prosedur:
Banyak program kecil memberi pengguna fungsi unggah gambar. Saat ini, menggunakan beberapa layanan cloud "penyimpanan objek" mungkin merupakan pilihan tercepat dan paling ekonomis.
Jadi, bagaimana seharusnya applet menggunakan layanan seperti itu? Masalah apa yang harus diperhatikan saat menggunakannya?
Ketahui programnya (WeChat ID zxcx0101) Artikel yang dibagikan hari ini akan menggunakan layanan penyimpanan objek Tencent Cloud sebagai contoh untuk mengajari Anda cara menghubungkan program mini ke layanan penyimpanan objek.
Teks | kecepatan bagus
Siap bekerja
Unggah gambar, terutama unggah gambar ke Tencent Cloud Object Storage (COS).
Untuk menggunakan Object Storage API, Anda perlu melakukan langkah-langkah berikut terlebih dahulu:
- Beli layanan Tencent Cloud Object Storage (COS).
- Buat Bucket di Tencent Cloud Object Storage Console.
- Di halaman "Personal API Key" di konsol, dapatkan AppID, SecretID, SecretKey, dll.
- Menulis program algoritma tanda tangan permintaan (atau menggunakan jenis SDK sisi server apa pun)
- Hitung tanda tangan, panggil API untuk melakukan operasi
Oleh karena itu, persiapan yang harus kita lakukan adalah:
- Buka situs web resmi Tencent Cloud (www.qcloud.com) dan daftarkan akun.
- Masuk ke konsol Cloud Object Storage Service (COS), aktifkan layanan COS, dan buat keranjang untuk mengunggah sumber daya.
- Konfigurasikan informasi nama domain yang relevan di latar belakang program mini platform publik (jika tidak, Anda tidak dapat memulai permintaan untuk nama domain di program mini).
Prosedur konfigurasi ini tidak dijelaskan di sini, dan langkah 4 dan 5 terutama diperkenalkan berikutnya.
Diagram alir untuk mengunggah gambar ke COS dengan applet adalah sebagai berikut:
Dalam proses ini, yang perlu kita capai adalah langkah-langkah server otentikasi untuk mengembalikan tanda tangan dan langkah-langkah untuk applet memproses gambar.
Layanan otentikasi COS
Saat menggunakan layanan penyimpanan objek COS, Permintaan anonim HTTP atau permintaan tanda tangan dapat dimulai ke COS melalui RESTful API.
Untuk permintaan penandatanganan, server COS akan memverifikasi identitas pemrakarsa permintaan.
- Permintaan anonim: Permintaan HTTP tidak membawa informasi identifikasi dan otentikasi apa pun , Melalui RESTful API untuk operasi permintaan HTTP.
- Permintaan tanda tangan: tambahkan tanda tangan saat permintaan HTTP, Setelah server COS menerima pesan, ia melakukan verifikasi identitas. Jika verifikasi berhasil, ia dapat menerima dan menjalankan permintaan , Jika tidak, pesan kesalahan akan dikembalikan dan permintaan akan dibuang.
Penyimpanan objek Tencent Cloud COS menggunakan skema HTTP kustom berdasarkan HMAC kunci (Hash Message Authentication Code) untuk autentikasi.
Dalam contoh ini, mengunggah gambar adalah permintaan penandatanganan , Verifikasi tanda tangan diperlukan.
1. Proses tanda tanganKlien menandatangani permintaan HTTP dan mengirimkan permintaan yang ditandatangani ke Tencent Cloud untuk verifikasi tanda tangan. Proses spesifiknya ditunjukkan pada gambar di bawah.
Kami menggunakan SDK untuk mengembangkan, dan kami hanya perlu memahami proses ini secara kasar. Penerapan tanda tangan sudah termasuk dalam SDK, dan kita hanya perlu memanggil metode di SDK.
Melalui proses signature kita dapat mengetahui bahwa signature membutuhkan SecretId dan SecretKey, Kedua informasi ini tidak cocok untuk disimpan di klien Ini juga alasan utama mengapa kami menerapkan server otentikasi secara terpisah.
2. Antarmuka untuk menghasilkan tanda tanganPada artikel sebelumnya, saya memperkenalkan bahwa saya menggunakan sanic framework dan swagger_py_codegen untuk menghasilkan Rest API di sisi server.
Untuk melengkapi API pembuatan tanda tangan, kita perlu menambahkan deskripsi yang relevan dari API di dokumen.
/ qc_cos / config: get: summary: Tencent Cloud konfigurasi deskripsi: Tencent Cloud konfigurasi tag: operationId: get_qc_cos_config parameter: - $ ref: '# / parameter / AccessToken' - $ ref: '# / parameter / qcos_path_in_query' tanggapan: 200: skema: $ ref: '# / definisi / QCOSConfig' default: deskripsi: Skema kesalahan tak terduga: $ ref: '# / definitions / Error' security: -OAuth2:Kami memerlukan login untuk memanggil antarmuka ini.
Setelah definisi dokumen selesai, panggil swagger_py_codegen -s docs / v1.yml. -P apis -tlp sanic untuk membuat templat kode. Kode API diimplementasikan sebagai berikut:
dari qcloud_cos. 3600 detik # Unggah ke direktori cos bucket dir_name = request.raw_args.get ('cos_path', '/ xrzeti') # Generate signature sign = auth.sign_more (Config.QCOS_BUCKET_NAME, cos_path = dir_name, expired = expired) return {" tanda ": tanda}, 200disebabkan oleh Python SDK dari Tencent Cloud COS v4 hanya mendukung Python 2, sedangkan sanic membutuhkan Python 3.5+ Jadi, di sini saya membagikan salinan dengan dukungan Python 3. Pengembang yang menggunakan Python 3 dapat menggunakannya.
Ikuti akun resmi WeChat dari "Knowing Program", balas ke "kode sumber", dan dapatkan alamat unduhan kerangka kerjanya.
Unggah gambar dalam program mini
1. Pilih gambarwx.chooseImage (OBJECT) Pilih gambar dari album lokal atau ambil foto dengan kamera.
Panggil metode ini, Applet akan meletakkan gambar yang dipilih di jalur sementara, yang dapat digunakan secara normal selama permulaan applet .
Jika Anda perlu menyimpan terus-menerus, Anda perlu memanggil wx.saveFile lagi, dan Anda dapat mengaksesnya saat applet dijalankan lain kali.
Di applet, Kami hanya dapat mengunggah file dengan jalur sementara .
Kode intinya adalah sebagai berikut:
uploadToCos: function {var that = this; // Pilih gambar yang akan diunggah wx.chooseImage ({sizeType :, // Jenis gambar gambar asli asli, gambar terkompresi, default keduanya berhasil: function (res) {// Dapatkan Jalur file var file = res.tempFiles; console.log (file.size); // Dapatkan nama file var fileName = file.path.match (/ (wxfile: \ / \ /) (. +) /) FileName = fileName // Setelah mendapatkan jalur sementara dari gambar tersebut, tentukan nama file dan unggah ke cos upload (file.path, fileName, that);}})}Setelah gambar berhasil dipilih, kami akan mengambil gambar asli dan menguploadnya ke COS.
2. Unggah gambarURL gambar yang diupload oleh COS terdiri dari cos_region, appid, bucket_name, dan cos_dir_name.
Konfigurasikan bidang berikut sebagai informasi terkait COS Anda sendiri (lihat dokumentasi API untuk detailnya):
cosUrl = "https: //" + REGION + ".file.myqcloud.com / files / v2 /" + APPID + "/" + BUCKET_NAME + DIR_NAME;- WILAYAH: Wilayah yang diunggah oleh COS
- APPID: appid akun
- BUCKET_NAME: Nama COS Bucket
- DIR_NAME: direktori file yang diunggah
Applet menyediakan uploadTask.onProgressUpdate untuk mendapatkan kemajuan unggahan gambar, jadi di sini, saya menampilkan kemajuan unggahan gambar.
Terakhir, ucapkan terima kasih atas dukungan pacar Anda.
Alamat asli: https://juejin.im/post/59a23fff518825244d204d9e
Ikuti akun publik "Program Kesadaran"
- Balas di latar belakang WeChat " Pengembangan ", untuk mendapatkan pengalaman lengkap dalam mengetahui pengembangan program.
- Balas di latar belakang WeChat " 666 ", dapatkan demo pengembangan program kecil.
- Lippi mereproduksi mahakaryanya! Dalam 15 menit, tim sepak bola nasional hidup kembali dan masuk dalam 8 besar pahlawan teratas
- DNF: Kompromi! Baby Xu Xu akan disiarkan lagi, tetapi masih ada keraguan apakah Dragon Ball cukup keren!
- Tutorial gratis rok putih "PUBG Mobile: Stimulating the Battlefield", mudah untuk mendapatkan seragam sekolah
- Tingkat kelangsungan hidup 50 juta produk baru hanya 60%. Bagaimana cara memenangkan pertarungan produk baru di tahun 2019?
- Vietnam masuk 8 besar untuk menciptakan keajaiban Piala Asia! Serangan Balik Grup No. 3 Tim Sepak Bola Nasional Grup No. 1 tidak bisa mengalahkan mereka dengan cepat
- DNF: Ada banyak bug di versi aslinya, dan kerusakan yang disebabkan oleh tim yang menjatuhkan frame tidak normal. Kapan akan diperbaiki?