Contrôle des flux ioniques utilisés par le HttpClient et AWSClient dans le AWS SDK pour C++ - AWS SDK pour C++

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Contrôle des flux ioniques utilisés par le HttpClient et AWSClient dans le AWS SDK pour C++

Par défaut, toutes les réponses utilisent un flux d'entrée soutenu par unstringbuf. Si nécessaire, vous pouvez modifier le comportement par défaut. Par exemple, si vous utilisez un Amazon S3 GetObject et que vous ne souhaitez pas charger l'intégralité du fichier en mémoire, vous pouvez utiliser IOStreamFactory in AmazonWebServiceRequest pour transmettre un lambda afin de créer un flux de fichiers.

Exemple de demande de flux de fichiers

//! Use a custom response stream when downloading an object from an Amazon Simple //! Storage Service (Amazon S3) bucket. /*! \param bucketName: The Amazon S3 bucket name. \param objectKey: The object key. \param filePath: File path for custom response stream. \param clientConfiguration: AWS client configuration. \return bool: Function succeeded. */ bool AwsDoc::SdkCustomization::customResponseStream(const Aws::String &bucketName, const Aws::String &objectKey, const Aws::String &filePath, const Aws::Client::ClientConfiguration &clientConfiguration) { Aws::S3::S3Client s3_client(clientConfiguration); Aws::S3::Model::GetObjectRequest getObjectRequest; getObjectRequest.WithBucket(bucketName).WithKey(objectKey); getObjectRequest.SetResponseStreamFactory([filePath]() { return Aws::New<Aws::FStream>( "FStreamAllocationTag", filePath, std::ios_base::out); }); Aws::S3::Model::GetObjectOutcome getObjectOutcome = s3_client.GetObject( getObjectRequest); if (getObjectOutcome.IsSuccess()) { std::cout << "Successfully retrieved object to file " << filePath << std::endl; } else { std::cerr << "Error getting object. " << getObjectOutcome.GetError().GetMessage() << std::endl; } return getObjectOutcome.IsSuccess(); }
Note

Il y en a plus à ce sujet GitHub. Trouvez l'exemple complet dans le référentiel d'exemples de AWS code.