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…
	
	Add table
		Add a link
		
	
		Reference in a new issue