From 82fe7b8442c5e89965e4ed162d0621a66f19b224 Mon Sep 17 00:00:00 2001 From: Ian Butterworth Date: Fri, 11 Jul 2025 14:42:55 -0400 Subject: [PATCH 1/2] fix depwarn. Fixes https://github.com/JuliaCloud/AWS.jl/issues/581 --- src/AWS.jl | 7 ++++++- src/services/mediastore_data.jl | 12 ++++++++---- src/services/s3.jl | 22 +++++++++++++++------- 3 files changed, 29 insertions(+), 12 deletions(-) diff --git a/src/AWS.jl b/src/AWS.jl index 07e50d0098..7af0d3a06b 100644 --- a/src/AWS.jl +++ b/src/AWS.jl @@ -65,6 +65,11 @@ Base.@kwdef struct FeatureSet use_response_type::Bool = false end +# Copy constructor for FeatureSet that allows overriding specific fields +function FeatureSet(fs::FeatureSet; use_response_type::Bool=fs.use_response_type) + return FeatureSet(; use_response_type=use_response_type) +end + """ global_aws_config() @@ -141,7 +146,7 @@ cannot). ## Returns -- `Module`: The module containging the high-level service API wrapper functions. +- `Module`: The module containing the high-level service API wrapper functions. ## Examples diff --git a/src/services/mediastore_data.jl b/src/services/mediastore_data.jl index c0c4affd48..d06652fbe9 100644 --- a/src/services/mediastore_data.jl +++ b/src/services/mediastore_data.jl @@ -40,16 +40,20 @@ Gets the headers for an object at the specified path. """ function describe_object(Path; aws_config::AbstractAWSConfig=global_aws_config()) - return mediastore_data( - "HEAD", "/$(Path)"; aws_config=aws_config, feature_set=SERVICE_FEATURE_SET + # Use copy constructor to preserve all fields from SERVICE_FEATURE_SET but override use_response_type + response = mediastore_data( + "HEAD", "/$(Path)"; aws_config=aws_config, feature_set=AWS.FeatureSet(SERVICE_FEATURE_SET; use_response_type=true) ) + return response.headers end function describe_object( Path, params::AbstractDict{String}; aws_config::AbstractAWSConfig=global_aws_config() ) - return mediastore_data( - "HEAD", "/$(Path)", params; aws_config=aws_config, feature_set=SERVICE_FEATURE_SET + # Use copy constructor to preserve all fields from SERVICE_FEATURE_SET but override use_response_type + response = mediastore_data( + "HEAD", "/$(Path)", params; aws_config=aws_config, feature_set=AWS.FeatureSet(SERVICE_FEATURE_SET; use_response_type=true) ) + return response.headers end """ diff --git a/src/services/s3.jl b/src/services/s3.jl index d9db5a2659..3f4b5fa81b 100644 --- a/src/services/s3.jl +++ b/src/services/s3.jl @@ -4022,14 +4022,18 @@ Optional parameters can be passed as a `params::Dict{String,<:Any}`. Valid keys fails with the HTTP status code 403 Forbidden (access denied). """ function head_bucket(Bucket; aws_config::AbstractAWSConfig=global_aws_config()) - return s3("HEAD", "/$(Bucket)"; aws_config=aws_config, feature_set=SERVICE_FEATURE_SET) + # Use copy constructor to preserve all fields from SERVICE_FEATURE_SET but override use_response_type + response = s3("HEAD", "/$(Bucket)"; aws_config=aws_config, feature_set=AWS.FeatureSet(SERVICE_FEATURE_SET; use_response_type=true)) + return response.headers end function head_bucket( Bucket, params::AbstractDict{String}; aws_config::AbstractAWSConfig=global_aws_config() ) - return s3( - "HEAD", "/$(Bucket)", params; aws_config=aws_config, feature_set=SERVICE_FEATURE_SET + # Use copy constructor to preserve all fields from SERVICE_FEATURE_SET but override use_response_type + response = s3( + "HEAD", "/$(Bucket)", params; aws_config=aws_config, feature_set=AWS.FeatureSet(SERVICE_FEATURE_SET; use_response_type=true) ) + return response.headers end """ @@ -4176,9 +4180,11 @@ Optional parameters can be passed as a `params::Dict{String,<:Any}`. Valid keys functionality is not supported for directory buckets. """ function head_object(Bucket, Key; aws_config::AbstractAWSConfig=global_aws_config()) - return s3( - "HEAD", "/$(Bucket)/$(Key)"; aws_config=aws_config, feature_set=SERVICE_FEATURE_SET + # Use copy constructor to preserve all fields from SERVICE_FEATURE_SET but override use_response_type + response = s3( + "HEAD", "/$(Bucket)/$(Key)"; aws_config=aws_config, feature_set=AWS.FeatureSet(SERVICE_FEATURE_SET; use_response_type=true) ) + return response.headers end function head_object( Bucket, @@ -4186,13 +4192,15 @@ function head_object( params::AbstractDict{String}; aws_config::AbstractAWSConfig=global_aws_config(), ) - return s3( + # Use copy constructor to preserve all fields from SERVICE_FEATURE_SET but override use_response_type + response = s3( "HEAD", "/$(Bucket)/$(Key)", params; aws_config=aws_config, - feature_set=SERVICE_FEATURE_SET, + feature_set=AWS.FeatureSet(SERVICE_FEATURE_SET; use_response_type=true), ) + return response.headers end """ From efbbf2a50ad8683ba0fb6a7e5b9239537e1a352e Mon Sep 17 00:00:00 2001 From: Ian Butterworth Date: Fri, 11 Jul 2025 14:54:27 -0400 Subject: [PATCH 2/2] formatting --- src/services/mediastore_data.jl | 11 +++++++++-- src/services/s3.jl | 18 +++++++++++++++--- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/src/services/mediastore_data.jl b/src/services/mediastore_data.jl index d06652fbe9..b4438924a1 100644 --- a/src/services/mediastore_data.jl +++ b/src/services/mediastore_data.jl @@ -42,7 +42,10 @@ Gets the headers for an object at the specified path. function describe_object(Path; aws_config::AbstractAWSConfig=global_aws_config()) # Use copy constructor to preserve all fields from SERVICE_FEATURE_SET but override use_response_type response = mediastore_data( - "HEAD", "/$(Path)"; aws_config=aws_config, feature_set=AWS.FeatureSet(SERVICE_FEATURE_SET; use_response_type=true) + "HEAD", + "/$(Path)"; + aws_config=aws_config, + feature_set=AWS.FeatureSet(SERVICE_FEATURE_SET; use_response_type=true), ) return response.headers end @@ -51,7 +54,11 @@ function describe_object( ) # Use copy constructor to preserve all fields from SERVICE_FEATURE_SET but override use_response_type response = mediastore_data( - "HEAD", "/$(Path)", params; aws_config=aws_config, feature_set=AWS.FeatureSet(SERVICE_FEATURE_SET; use_response_type=true) + "HEAD", + "/$(Path)", + params; + aws_config=aws_config, + feature_set=AWS.FeatureSet(SERVICE_FEATURE_SET; use_response_type=true), ) return response.headers end diff --git a/src/services/s3.jl b/src/services/s3.jl index 3f4b5fa81b..128eb467b2 100644 --- a/src/services/s3.jl +++ b/src/services/s3.jl @@ -4023,7 +4023,12 @@ Optional parameters can be passed as a `params::Dict{String,<:Any}`. Valid keys """ function head_bucket(Bucket; aws_config::AbstractAWSConfig=global_aws_config()) # Use copy constructor to preserve all fields from SERVICE_FEATURE_SET but override use_response_type - response = s3("HEAD", "/$(Bucket)"; aws_config=aws_config, feature_set=AWS.FeatureSet(SERVICE_FEATURE_SET; use_response_type=true)) + response = s3( + "HEAD", + "/$(Bucket)"; + aws_config=aws_config, + feature_set=AWS.FeatureSet(SERVICE_FEATURE_SET; use_response_type=true), + ) return response.headers end function head_bucket( @@ -4031,7 +4036,11 @@ function head_bucket( ) # Use copy constructor to preserve all fields from SERVICE_FEATURE_SET but override use_response_type response = s3( - "HEAD", "/$(Bucket)", params; aws_config=aws_config, feature_set=AWS.FeatureSet(SERVICE_FEATURE_SET; use_response_type=true) + "HEAD", + "/$(Bucket)", + params; + aws_config=aws_config, + feature_set=AWS.FeatureSet(SERVICE_FEATURE_SET; use_response_type=true), ) return response.headers end @@ -4182,7 +4191,10 @@ Optional parameters can be passed as a `params::Dict{String,<:Any}`. Valid keys function head_object(Bucket, Key; aws_config::AbstractAWSConfig=global_aws_config()) # Use copy constructor to preserve all fields from SERVICE_FEATURE_SET but override use_response_type response = s3( - "HEAD", "/$(Bucket)/$(Key)"; aws_config=aws_config, feature_set=AWS.FeatureSet(SERVICE_FEATURE_SET; use_response_type=true) + "HEAD", + "/$(Bucket)/$(Key)"; + aws_config=aws_config, + feature_set=AWS.FeatureSet(SERVICE_FEATURE_SET; use_response_type=true), ) return response.headers end