对于新项目,我们必须将文件上传到AWS S3。 C ++ SDK让我们以两种方式执行此操作。 第一种方法是使用Transfermanager及其UploadFile()方法。 其次,我们可以使用Aws :: S3 :: Model :: PutObjectRequest()。
这些方法之间是否有重要区别?我已经读到putObject()自动计算哈希值,并提供对哈希值的检查(如果文件已上传)。那UploadFile()呢?
std::shared_ptr<Aws::Transfer::TransferHandle> handle =
transfermanager->UploadFile(Aws::String("C:/test.txt"),
Aws::String("bucketName"),
Aws::String(key), Aws::String("multipart/form-data"), metadata);
-----------------
auto request = Aws::S3::Model::PutObjectRequest();
request.WithBucket("bucketName").WithKey(key);
request.SetBody(input_data);
request.SetMetadata(metadata);
s3client->PutObject(request);
两者均导致文件上传到S3存储桶。我说不出任何区别。