Open kallisti5 opened 2 years ago
Yeah, it seems some changes are required in order to launch it on Ruby 3.0.
Could you create a PR?
I was able to work around the issue locally:
--- /home/kallisti5/.gem/ruby/3.0.0/gems/s3-0.3.29/lib/s3/bucket.rb.original 2022-02-18 13:26:37.247078560 -0600
+++ /home/kallisti5/.gem/ruby/3.0.0/gems/s3-0.3.29/lib/s3/bucket.rb 2022-02-18 13:26:47.707146732 -0600
@@ -151,7 +151,7 @@
# If there are more than 1000 objects S3 truncates listing and
# we need to request another listing for the remaining objects.
while parse_is_truncated(response.body)
- next_request_options = {:marker => URI.escape(objects_attributes.last[:key])}
+ next_request_options = {:marker => URI::DEFAULT_PARSER.escape(objects_attributes.last[:key])}
if max_keys
break if objects_attributes.length >= max_keys
That's likely not a good fix though since it might break for Ruby 2.x / stdlib 2.x.
Really surprised Ruby didn't leave some compatibility .escape call in the api :-|
I opened https://bugs.ruby-lang.org/issues/18593 maybe the real solution is Ruby 3.x should have been less aggressive in refactoring escape :-)