Fix setting Content-Encoding in S3 uploads
Fixes https://github.com/NixOS/nix/issues/2333 and https://github.com/NixOS/nixpkgs/issues/44337.
This commit is contained in:
parent
d3761f5f8b
commit
7de3e00ad9
2 changed files with 11 additions and 8 deletions
|
@ -60,10 +60,15 @@ rec {
|
||||||
++ lib.optionals stdenv.isLinux [libseccomp utillinuxMinimal]
|
++ lib.optionals stdenv.isLinux [libseccomp utillinuxMinimal]
|
||||||
++ lib.optional (stdenv.isLinux || stdenv.isDarwin) libsodium
|
++ lib.optional (stdenv.isLinux || stdenv.isDarwin) libsodium
|
||||||
++ lib.optional (stdenv.isLinux || stdenv.isDarwin)
|
++ lib.optional (stdenv.isLinux || stdenv.isDarwin)
|
||||||
(aws-sdk-cpp.override {
|
((aws-sdk-cpp.override {
|
||||||
apis = ["s3" "transfer"];
|
apis = ["s3" "transfer"];
|
||||||
customMemoryManagement = false;
|
customMemoryManagement = false;
|
||||||
});
|
}).overrideDerivation (args: {
|
||||||
|
patches = args.patches or [] ++ [ (fetchpatch {
|
||||||
|
url = https://github.com/edolstra/aws-sdk-cpp/commit/3e07e1f1aae41b4c8b340735ff9e8c735f0c063f.patch;
|
||||||
|
sha256 = "1pij0v449p166f9l29x7ppzk8j7g9k9mp15ilh5qxp29c7fnvxy2";
|
||||||
|
}) ];
|
||||||
|
}));
|
||||||
|
|
||||||
perlDeps =
|
perlDeps =
|
||||||
[ perl
|
[ perl
|
||||||
|
|
|
@ -291,10 +291,6 @@ struct S3BinaryCacheStoreImpl : public S3BinaryCacheStore
|
||||||
transferConfig.s3Client = s3Helper.client;
|
transferConfig.s3Client = s3Helper.client;
|
||||||
transferConfig.bufferSize = bufferSize;
|
transferConfig.bufferSize = bufferSize;
|
||||||
|
|
||||||
if (contentEncoding != "")
|
|
||||||
transferConfig.createMultipartUploadTemplate.SetContentEncoding(
|
|
||||||
contentEncoding);
|
|
||||||
|
|
||||||
transferConfig.uploadProgressCallback =
|
transferConfig.uploadProgressCallback =
|
||||||
[&](const TransferManager *transferManager,
|
[&](const TransferManager *transferManager,
|
||||||
const std::shared_ptr<const TransferHandle>
|
const std::shared_ptr<const TransferHandle>
|
||||||
|
@ -336,8 +332,10 @@ struct S3BinaryCacheStoreImpl : public S3BinaryCacheStore
|
||||||
auto now1 = std::chrono::steady_clock::now();
|
auto now1 = std::chrono::steady_clock::now();
|
||||||
|
|
||||||
std::shared_ptr<TransferHandle> transferHandle =
|
std::shared_ptr<TransferHandle> transferHandle =
|
||||||
transferManager->UploadFile(stream, bucketName, path, mimeType,
|
transferManager->UploadFile(
|
||||||
Aws::Map<Aws::String, Aws::String>());
|
stream, bucketName, path, mimeType,
|
||||||
|
Aws::Map<Aws::String, Aws::String>(),
|
||||||
|
nullptr, contentEncoding);
|
||||||
|
|
||||||
transferHandle->WaitUntilFinished();
|
transferHandle->WaitUntilFinished();
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue