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