Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Demo di caricamento di base di CoreHTTP su Amazon S3
Importante
Questa è una versione archiviata della FreeRTOS User Guide da utilizzare con la versione FreeRTOS 202210.00. Per l'ultima versione di questo documento, consulta la FreerTOS User Guide.
Introduzione
Questo esempio dimostra come inviare una richiesta PUT al server HTTP Amazon Simple Storage Service (Amazon S3) e caricare un file di piccole dimensioni. Esegue anche una richiesta GET per verificare la dimensione del file dopo il caricamento. Questo esempio utilizza un'interfaccia di trasporto di rete
Nota
Per configurare ed eseguire le demo di FreerTOS, segui i passaggi indicati. Guida introduttiva a FreerTOS
Filettatura singola contro filettatura multipla
Esistono due modelli di utilizzo CoreHTTP, a thread singolo e multithread (multitasking). Sebbene la demo in questa sezione esegua la libreria HTTP in un thread, in realtà dimostra come utilizzare CoreHTTP in un ambiente a thread singolo. Solo un'attività in questa demo utilizza l'API HTTP. Sebbene le applicazioni a thread singolo debbano chiamare ripetutamente la libreria HTTP, le applicazioni multithread possono invece inviare richieste HTTP in background all'interno di un'attività agente (o daemon).
Organizzazione del codice sorgente
Il file sorgente della demo è denominato http_demo_s3_upload.c
e può essere trovato nella
directory e sul GitHubfreertos
/demos/coreHTTP/
Configurazione della connessione al server HTTP Amazon S3
Questa demo utilizza un URL prefirmato per connettersi al server HTTP Amazon S3 e autorizzare l'accesso all'oggetto da scaricare. La connessione TLS del server HTTP Amazon S3 utilizza solo l'autenticazione del server. A livello di applicazione, l'accesso all'oggetto viene autenticato con i parametri della query URL prefirmata. Segui i passaggi seguenti per configurare la connessione a. AWS
Iscriviti per un Account AWS
Se non ne hai uno Account AWS, completa i seguenti passaggi per crearne uno.
Per iscriverti a un Account AWS
Apri la https://portal.aws.amazon.com/billing/registrazione.
Segui le istruzioni online.
Parte della procedura di registrazione prevede la ricezione di una telefonata o di un messaggio di testo e l'immissione di un codice di verifica sulla tastiera del telefono.
Quando ti iscrivi a un Account AWS, Utente root dell'account AWSviene creato un. L'utente root dispone dell'accesso a tutte le risorse e tutti i Servizi AWS nell'account. Come best practice di sicurezza, assegna l'accesso amministrativo a un utente e utilizza solo l'utente root per eseguire attività che richiedono l'accesso di un utente root.
AWS ti invia un'email di conferma dopo il completamento della procedura di registrazione. In qualsiasi momento, puoi visualizzare l'attività corrente del tuo account e gestirlo accedendo a https://aws.amazon.com/
Crea un utente con accesso amministrativo
Dopo esserti registrato Account AWS, proteggi Utente root dell'account AWS AWS IAM Identity Center, abilita e crea un utente amministrativo in modo da non utilizzare l'utente root per le attività quotidiane.
Proteggi i tuoi Utente root dell'account AWS
-
Accedi AWS Management Console
come proprietario dell'account scegliendo Utente root e inserendo il tuo indirizzo Account AWS email. Nella pagina successiva, inserisci la password. Per informazioni sull'accesso utilizzando un utente root, consulta la pagina Signing in as the root user della Guida per l'utente di Accedi ad AWS .
-
Abilita l'autenticazione a più fattori (MFA) per l'utente root.
Per istruzioni, consulta Abilitare un dispositivo MFA virtuale per l'utente Account AWS root (console) nella Guida per l'utente IAM.
Crea un utente con accesso amministrativo
-
Abilita Centro identità IAM.
Per istruzioni, consulta Abilitazione di AWS IAM Identity Center nella Guida per l'utente di AWS IAM Identity Center .
-
In IAM Identity Center, assegna l'accesso amministrativo a un utente.
Per un tutorial sull'utilizzo di IAM Identity Center directory come fonte di identità, consulta Configurare l'accesso utente con l'impostazione predefinita IAM Identity Center directory nella Guida per l'AWS IAM Identity Center utente.
Accesso come utente amministratore
-
Per accedere con l'utente IAM Identity Center, utilizza l'URL di accesso che è stato inviato al tuo indirizzo e-mail quando hai creato l'utente IAM Identity Center.
Per informazioni sull'accesso utilizzando un utente IAM Identity Center, consulta AWS Accedere al portale di accesso nella Guida per l'Accedi ad AWS utente.
Assegna l'accesso a ulteriori utenti
-
In IAM Identity Center, crea un set di autorizzazioni conforme alla best practice dell'applicazione di autorizzazioni con il privilegio minimo.
Segui le istruzioni riportate nella pagina Creazione di un set di autorizzazioni nella Guida per l'utente di AWS IAM Identity Center .
-
Assegna al gruppo prima gli utenti e poi l'accesso con autenticazione unica (Single Sign-On).
Per istruzioni, consulta Aggiungere gruppi nella Guida per l'utente di AWS IAM Identity Center .
Per fornire l'accesso, aggiungi autorizzazioni agli utenti, gruppi o ruoli:
-
Utenti e gruppi in AWS IAM Identity Center:
Crea un set di autorizzazioni. Segui le istruzioni riportate nella pagina Create a permission set (Creazione di un set di autorizzazioni) nella Guida per l'utente di AWS IAM Identity Center .
-
Utenti gestiti in IAM tramite un provider di identità:
Crea un ruolo per la federazione delle identità. Segui le istruzioni riportate nella pagina Create a role for a third-party identity provider (federation) della Guida per l'utente IAM.
-
Utenti IAM:
-
Crea un ruolo che l'utente possa assumere. Segui le istruzioni riportate nella pagina Create a role for an IAM user della Guida per l'utente IAM.
-
(Non consigliato) Collega una policy direttamente a un utente o aggiungi un utente a un gruppo di utenti. Segui le istruzioni riportate nella pagina Aggiunta di autorizzazioni a un utente (console) nella Guida per l'utente IAM.
-
-
Crea un bucket in Amazon S3 seguendo la procedura descritta in Come si crea un bucket S3? nella Guida per l'utente di Amazon Simple Storage Service.
-
Carica un file su Amazon S3 seguendo la procedura descritta in Come si caricano file e cartelle in un bucket S3? .
-
Genera un URL prefirmato utilizzando lo script che si trova nel
FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/Common/presigned_url_generator/presigned_urls_gen.py
file.Per istruzioni sull'uso, consulta il
FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/Common/presigned_url_generator/README.md
file.
Funzionalità
La demo si connette innanzitutto al server HTTP Amazon S3 con l'autenticazione del server TLS. Quindi, crea una richiesta HTTP per caricare i dati specificati in. democonfigDEMO_HTTP_UPLOAD_DATA
Dopo aver caricato il file, verifica che il file sia stato caricato correttamente richiedendo la dimensione del file. Il codice sorgente della demo è disponibile sul sito web. GitHub
Connessione al server HTTP Amazon S3
La connectToServerWithBackoffRetriesconnectToServerWithBackoffRetries
funzione restituisce uno stato di errore se non è possibile stabilire la connessione TCP al server dopo il numero di tentativi configurato.
La prvConnectToServer
funzione dimostra come stabilire una connessione al server HTTP Amazon S3 utilizzando solo l'autenticazione del server. Utilizza l'interfaccia di trasporto basata su MBEDTLS implementata nel file. FreeRTOS-Plus/Source/Application-Protocols/network_transport/freertos_plus_tcp/using_mbedtls/using_mbedtls.c
La definizione di prvConnectToServer
può essere trovata sul sito web. GitHub
Caricare dati
La prvUploadS3ObjectFile
funzione dimostra come creare una richiesta PUT e specificare il file da caricare. Il bucket Amazon S3 in cui viene caricato il file e il nome del file da caricare sono specificati nell'URL prefirmato. Per risparmiare memoria, viene utilizzato lo stesso buffer sia per le intestazioni della richiesta che per ricevere la risposta. La risposta viene ricevuta in modo sincrono utilizzando la HTTPClient_Send
funzione API. È previsto un codice di stato della 200 OK
risposta dal server HTTP Amazon S3. Qualsiasi altro codice di stato è un errore.
Il codice sorgente di prvUploadS3ObjectFile()
è disponibile sul GitHub
Verifica del caricamento
La prvVerifyS3ObjectFileSize
funzione chiama prvGetS3ObjectFileSize
per recuperare la dimensione dell'oggetto nel bucket S3. Il server HTTP Amazon S3 attualmente non supporta le richieste HEAD che utilizzano un URL prefirmato, quindi è richiesto il byte 0. La dimensione del file è contenuta nel campo di intestazione della risposta. Content-Range
È prevista una 206 Partial Content
risposta dal server. Qualsiasi altro codice di stato della risposta è un errore.
Il codice sorgente di prvGetS3ObjectFileSize()
è disponibile sul GitHub