Demo unggahan dasar CoreHTTP Amazon S3 - FreeRTOS

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Demo unggahan dasar CoreHTTP Amazon S3

penting

Ini adalah versi arsip dari Panduan Pengguna FreerTOS untuk digunakan dengan rilis FreerTOS 202210.00. Untuk versi terbaru dari dokumen ini, lihat Panduan Pengguna FreeRTOS.

Pengantar

Contoh ini menunjukkan cara mengirim permintaan PUT ke server HTTP Amazon Simple Storage Service (Amazon S3) dan mengunggah file kecil. Ini juga melakukan permintaan GET untuk memverifikasi ukuran file setelah unggahan. Contoh ini menggunakan antarmuka transportasi jaringan yang menggunakan mBEDTLS untuk membuat koneksi yang saling diautentikasi antara klien perangkat IoT yang menjalankan CoreHTTP dan server HTTP Amazon S3.

catatan

Untuk mengatur dan menjalankan demo FreeRTOS, ikuti langkah-langkahnya. Memulai dengan FreeRTOS

Berulir tunggal versus multi ulir

Ada dua model penggunaan CoreHTTP, single threaded dan multithreaded (multitasking). Meskipun demo di bagian ini menjalankan perpustakaan HTTP di utas, ini sebenarnya menunjukkan cara menggunakan CoreHTTP dalam satu lingkungan berulir. Hanya satu tugas dalam demo ini yang menggunakan HTTP API. Meskipun aplikasi single threaded harus berulang kali memanggil perpustakaan HTTP, aplikasi multithreaded malah dapat mengirim permintaan HTTP di latar belakang dalam tugas agen (atau daemon).

Organisasi kode sumber

File sumber demo diberi nama http_demo_s3_upload.c dan dapat ditemukan di freertos/demos/coreHTTP/ direktori dan di GitHubsitus web.

Mengkonfigurasi koneksi server HTTP Amazon S3

Demo ini menggunakan URL yang telah ditandatangani sebelumnya untuk terhubung ke server HTTP Amazon S3 dan mengotorisasi akses ke objek untuk diunduh. Koneksi TLS server HTTP Amazon S3 hanya menggunakan otentikasi server. Pada tingkat aplikasi, akses ke objek diautentikasi dengan parameter dalam kueri URL yang telah ditandatangani sebelumnya. Ikuti langkah-langkah di bawah ini untuk mengonfigurasi koneksi Anda AWS.

Mendaftar untuk Akun AWS

Jika Anda tidak memiliki Akun AWS, selesaikan langkah-langkah berikut untuk membuatnya.

Untuk mendaftar untuk Akun AWS
  1. Buka https://portal.aws.amazon.com/billing/pendaftaran.

  2. Ikuti petunjuk online.

    Bagian dari prosedur pendaftaran melibatkan menerima panggilan telepon atau pesan teks dan memasukkan kode verifikasi pada keypad telepon.

    Saat Anda mendaftar untuk sebuah Akun AWS, sebuah Pengguna root akun AWSdibuat. Pengguna root memiliki akses ke semua Layanan AWS dan sumber daya di akun. Sebagai praktik keamanan terbaik, tetapkan akses administratif ke pengguna, dan gunakan hanya pengguna root untuk melakukan tugas yang memerlukan akses pengguna root.

AWS mengirimi Anda email konfirmasi setelah proses pendaftaran selesai. Kapan saja, Anda dapat melihat aktivitas akun Anda saat ini dan mengelola akun Anda dengan masuk https://aws.amazon.comke/ dan memilih Akun Saya.

Buat pengguna dengan akses administratif

Setelah Anda mendaftar Akun AWS, amankan Pengguna root akun AWS, aktifkan AWS IAM Identity Center, dan buat pengguna administratif sehingga Anda tidak menggunakan pengguna root untuk tugas sehari-hari.

Amankan Anda Pengguna root akun AWS
  1. Masuk ke AWS Management Consolesebagai pemilik akun dengan memilih pengguna Root dan memasukkan alamat Akun AWS email Anda. Di laman berikutnya, masukkan kata sandi.

    Untuk bantuan masuk dengan menggunakan pengguna root, lihat Masuk sebagai pengguna root di AWS Sign-In Panduan Pengguna.

  2. Mengaktifkan autentikasi multi-faktor (MFA) untuk pengguna root Anda.

    Untuk petunjuk, lihat Mengaktifkan perangkat MFA virtual untuk pengguna Akun AWS root (konsol) Anda di Panduan Pengguna IAM.

Buat pengguna dengan akses administratif
  1. Aktifkan Pusat Identitas IAM.

    Untuk mendapatkan petunjuk, silakan lihat Mengaktifkan AWS IAM Identity Center di Panduan Pengguna AWS IAM Identity Center .

  2. Di Pusat Identitas IAM, berikan akses administratif ke pengguna.

    Untuk tutorial tentang menggunakan Direktori Pusat Identitas IAM sebagai sumber identitas Anda, lihat Mengkonfigurasi akses pengguna dengan default Direktori Pusat Identitas IAM di Panduan AWS IAM Identity Center Pengguna.

Masuk sebagai pengguna dengan akses administratif
  • Untuk masuk dengan pengguna Pusat Identitas IAM, gunakan URL masuk yang dikirim ke alamat email saat Anda membuat pengguna Pusat Identitas IAM.

    Untuk bantuan masuk menggunakan pengguna Pusat Identitas IAM, lihat Masuk ke portal AWS akses di Panduan AWS Sign-In Pengguna.

Tetapkan akses ke pengguna tambahan
  1. Di Pusat Identitas IAM, buat set izin yang mengikuti praktik terbaik menerapkan izin hak istimewa paling sedikit.

    Untuk petunjuknya, lihat Membuat set izin di Panduan AWS IAM Identity Center Pengguna.

  2. Tetapkan pengguna ke grup, lalu tetapkan akses masuk tunggal ke grup.

    Untuk petunjuk, lihat Menambahkan grup di Panduan AWS IAM Identity Center Pengguna.

Untuk memberikan akses dan menambahkan izin bagi pengguna, grup, atau peran Anda:

  1. Buat bucket di Amazon S3 dengan mengikuti langkah-langkah di Bagaimana cara membuat bucket S3? di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.

  2. Unggah file ke Amazon S3 dengan mengikuti langkah-langkah di Bagaimana cara mengunggah file dan folder ke bucket S3? .

  3. Hasilkan URL yang telah ditandatangani sebelumnya menggunakan skrip yang terletak di FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/Common/presigned_url_generator/presigned_urls_gen.py file.

    Untuk petunjuk penggunaan, lihat FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/Common/presigned_url_generator/README.md file.

Fungsionalitas

Demo pertama terhubung ke server HTTP Amazon S3 dengan otentikasi server TLS. Kemudian, itu membuat permintaan HTTP untuk mengunggah data yang ditentukan dalamdemoconfigDEMO_HTTP_UPLOAD_DATA. Setelah mengunggah file, ia memeriksa bahwa file berhasil diunggah dengan meminta ukuran file. Kode sumber untuk demo dapat ditemukan di situs GitHubweb.

Menghubungkan ke server HTTP Amazon S3

connectToServerWithBackoffRetriesFungsi ini mencoba untuk membuat koneksi TCP ke server HTTP. Jika koneksi gagal, ia mencoba lagi setelah batas waktu. Nilai batas waktu akan meningkat secara eksponensial hingga jumlah upaya maksimum tercapai atau nilai batas waktu maksimum tercapai. connectToServerWithBackoffRetriesFungsi mengembalikan status kegagalan jika koneksi TCP ke server tidak dapat dibuat setelah jumlah upaya yang dikonfigurasi.

prvConnectToServerFungsi ini menunjukkan cara membuat koneksi ke server HTTP Amazon S3 dengan menggunakan otentikasi server saja. Ini menggunakan antarmuka transport berbasis MBEDTLS yang diimplementasikan dalam file. FreeRTOS-Plus/Source/Application-Protocols/network_transport/freertos_plus_tcp/using_mbedtls/using_mbedtls.c Definisi prvConnectToServer dapat ditemukan di situs GitHubweb.

Unggah data

prvUploadS3ObjectFileFungsi ini menunjukkan cara membuat permintaan PUT dan menentukan file yang akan diunggah. Bucket Amazon S3 tempat file diunggah dan nama file yang akan diunggah ditentukan dalam URL yang telah ditandatangani sebelumnya. Untuk menyimpan memori, buffer yang sama digunakan untuk header permintaan dan untuk menerima respons. Respons diterima secara sinkron menggunakan fungsi HTTPClient_Send API. Kode status 200 OK respons diharapkan dari server HTTP Amazon S3. Kode status lainnya adalah kesalahan.

Kode sumber untuk prvUploadS3ObjectFile() dapat ditemukan di situs GitHubweb.

Memverifikasi unggahan

prvVerifyS3ObjectFileSizeFungsi memanggil prvGetS3ObjectFileSize untuk mengambil ukuran objek di bucket S3. Server HTTP Amazon S3 saat ini tidak mendukung permintaan HEAD menggunakan URL yang telah ditandatangani sebelumnya, jadi byte ke-0 diminta. Ukuran file terkandung dalam bidang Content-Range header respon. 206 Partial ContentRespons diharapkan dari server. Kode status respons lainnya adalah kesalahan.

Kode sumber untuk prvGetS3ObjectFileSize() dapat ditemukan di situs GitHubweb.