From 1725375d282c3e35c06688bec54b2b348f43e679 Mon Sep 17 00:00:00 2001 From: muxcmux <storm.bg@gmail.com> Date: Mon, 22 Aug 2022 12:24:51 +0300 Subject: [PATCH] Upgrade Faraday * Use CGI.escape * Make the blob gem use the local common gem --- Gemfile | 26 +++++++++---------- blob/Gemfile | 2 ++ blob/azure-storage-blob.gemspec | 2 +- common/azure-storage-common.gemspec | 24 ++++++++--------- common/lib/azure/core.rb | 4 +-- common/lib/azure/storage/common/autoload.rb | 3 ++- .../azure/storage/common/core/http_client.rb | 2 +- file/Gemfile | 2 ++ file/azure-storage-file.gemspec | 2 +- queue/Gemfile | 2 ++ queue/azure-storage-queue.gemspec | 2 +- table/Gemfile | 2 ++ table/azure-storage-table.gemspec | 2 +- .../lib/azure/storage/table/table_service.rb | 10 ++----- 14 files changed, 44 insertions(+), 41 deletions(-) diff --git a/Gemfile b/Gemfile index 12f59ee..eb31b0c 100644 --- a/Gemfile +++ b/Gemfile @@ -24,17 +24,17 @@ # THE SOFTWARE. #-------------------------------------------------------------------------- source "https://rubygems.org" do - gem "faraday", "~> 1.0", :require => false - gem "faraday_middleware", "~> 1.0.0.rc1", :require => false - gem "net-http-persistent", "~> 4.0", :require => false - gem "nokogiri", "~> 1", ">= 1.10.8", :require => false - gem "adal", "~> 1.0", :require => false - gem "dotenv", "~> 2.0", :require => false - gem "minitest", "~> 5", :require => false - gem "minitest-reporters", "~> 1", :require => false - gem "mocha", "~> 1.0", :require => false - gem "rake", "~> 13.0", :require => false - gem "timecop", "~> 0.7", :require => false - gem "yard", "~> 0.9", ">= 0.9.11", :require => false - gem "coveralls", require: false + gem "faraday", "~> 2.0", :require => false + gem "faraday-net_http_persistent", "~> 2", :require => false + gem "faraday-follow_redirects", "~> 0.3", :require => false + gem "nokogiri", "~> 1", ">= 1.10.8", :require => false + gem "adal", "~> 1.0", :require => false + gem "dotenv", "~> 2.0", :require => false + gem "minitest", "~> 5", :require => false + gem "minitest-reporters", "~> 1", :require => false + gem "mocha", "~> 1.0", :require => false + gem "rake", "~> 13.0", :require => false + gem "timecop", "~> 0.7", :require => false + gem "yard", "~> 0.9", ">= 0.9.11", :require => false + gem "coveralls", require: false end diff --git a/blob/Gemfile b/blob/Gemfile index 46caa9a..7ec3963 100644 --- a/blob/Gemfile +++ b/blob/Gemfile @@ -25,6 +25,8 @@ #-------------------------------------------------------------------------- source "https://rubygems.org" +gem 'azure-storage-common', path: '../common' + gemspec name: "azure-storage-blob" gem "coveralls", require: false diff --git a/blob/azure-storage-blob.gemspec b/blob/azure-storage-blob.gemspec index bc45e52..cb959b6 100644 --- a/blob/azure-storage-blob.gemspec +++ b/blob/azure-storage-blob.gemspec @@ -40,7 +40,7 @@ Gem::Specification.new do |s| s.required_ruby_version = ">= 2.3.0" - s.add_runtime_dependency("azure-storage-common", "~> 2.0") + s.add_runtime_dependency("azure-storage-common") s.add_runtime_dependency("nokogiri", "~> 1", ">= 1.10.8") s.add_development_dependency("dotenv", "~> 2.0") s.add_development_dependency("minitest", "~> 5") diff --git a/common/azure-storage-common.gemspec b/common/azure-storage-common.gemspec index 2a614e5..69d1b19 100644 --- a/common/azure-storage-common.gemspec +++ b/common/azure-storage-common.gemspec @@ -41,16 +41,16 @@ Gem::Specification.new do |s| s.required_ruby_version = ">= 2.3.0" - s.add_runtime_dependency('faraday', '~> 1.0') - s.add_runtime_dependency('faraday_middleware', "~> 1.0", ">= 1.0.0.rc1") - s.add_runtime_dependency("net-http-persistent", '~> 4.0') - s.add_runtime_dependency("nokogiri", "~> 1", ">= 1.10.8") - s.add_development_dependency("dotenv", "~> 2.0") - s.add_development_dependency("minitest", "~> 5") - s.add_development_dependency("minitest-reporters", "~> 1") - s.add_development_dependency("mocha", "~> 1.0") - s.add_development_dependency("rake", "~> 13.0") - s.add_development_dependency("timecop", "~> 0.7") - s.add_development_dependency("yard", "~> 0.9", ">= 0.9.11") - s.add_development_dependency('bundler', '~> 1.11') + s.add_runtime_dependency('faraday', '~> 2') + s.add_runtime_dependency('faraday-net_http_persistent', "~> 2") + s.add_runtime_dependency('faraday-follow_redirects', "~> 0.3") + s.add_runtime_dependency("nokogiri", "~> 1", ">= 1.10.8") + s.add_development_dependency("dotenv", "~> 2.0") + s.add_development_dependency("minitest", "~> 5") + s.add_development_dependency("minitest-reporters", "~> 1") + s.add_development_dependency("mocha", "~> 1.0") + s.add_development_dependency("rake", "~> 13.0") + s.add_development_dependency("timecop", "~> 0.7") + s.add_development_dependency("yard", "~> 0.9", ">= 0.9.11") + s.add_development_dependency('bundler', '~> 1.11') end diff --git a/common/lib/azure/core.rb b/common/lib/azure/core.rb index 4bdf286..ce41e67 100644 --- a/common/lib/azure/core.rb +++ b/common/lib/azure/core.rb @@ -16,7 +16,8 @@ require 'rubygems' require 'nokogiri' require 'faraday' -require 'faraday_middleware' +require 'faraday/follow_redirects' +require 'faraday/net_http_persistent' module Azure module Core @@ -43,5 +44,4 @@ module Azure autoload :SignerFilter, 'azure/core/http/signer_filter' end end - end diff --git a/common/lib/azure/storage/common/autoload.rb b/common/lib/azure/storage/common/autoload.rb index 57b1db1..75e144b 100644 --- a/common/lib/azure/storage/common/autoload.rb +++ b/common/lib/azure/storage/common/autoload.rb @@ -30,7 +30,8 @@ require "base64" require "openssl" require "uri" require "faraday" -require "faraday_middleware" +require "faraday/follow_redirects" +require "faraday/net_http_persistent" require "azure/storage/common/core/autoload" require "azure/storage/common/default" diff --git a/common/lib/azure/storage/common/core/http_client.rb b/common/lib/azure/storage/common/core/http_client.rb index 4fdc06f..0898b70 100644 --- a/common/lib/azure/storage/common/core/http_client.rb +++ b/common/lib/azure/storage/common/core/http_client.rb @@ -71,7 +71,7 @@ module Azure::Storage::Common::Core URI::parse(ENV["HTTPS_PROXY"]) end || nil Faraday.new(uri, ssl: ssl_options, proxy: proxy_options) do |conn| - conn.use FaradayMiddleware::FollowRedirects + conn.use Faraday::FollowRedirects::Middleware conn.adapter :net_http_persistent, pool_size: 5 do |http| # yields Net::HTTP::Persistent http.idle_timeout = 100 diff --git a/file/Gemfile b/file/Gemfile index 388aaaf..2dc669b 100644 --- a/file/Gemfile +++ b/file/Gemfile @@ -25,6 +25,8 @@ #-------------------------------------------------------------------------- source "https://rubygems.org" +gem 'azure-storage-common', path: '../common' + gemspec name: "azure-storage-file" gem "coveralls", require: false diff --git a/file/azure-storage-file.gemspec b/file/azure-storage-file.gemspec index 6f5f739..dc3c7e5 100644 --- a/file/azure-storage-file.gemspec +++ b/file/azure-storage-file.gemspec @@ -40,7 +40,7 @@ Gem::Specification.new do |s| s.required_ruby_version = ">= 2.3.0" - s.add_runtime_dependency("azure-storage-common", "~> 2.0") + s.add_runtime_dependency("azure-storage-common") s.add_runtime_dependency("nokogiri", "~> 1", ">= 1.10.8") s.add_development_dependency("dotenv", "~> 2.0") s.add_development_dependency("minitest", "~> 5") diff --git a/queue/Gemfile b/queue/Gemfile index 91b4043..ff3c041 100644 --- a/queue/Gemfile +++ b/queue/Gemfile @@ -25,6 +25,8 @@ #-------------------------------------------------------------------------- source "https://rubygems.org" +gem 'azure-storage-common', path: '../common' + gemspec name: "azure-storage" gem "coveralls", require: false diff --git a/queue/azure-storage-queue.gemspec b/queue/azure-storage-queue.gemspec index 1295bd3..1f5cede 100644 --- a/queue/azure-storage-queue.gemspec +++ b/queue/azure-storage-queue.gemspec @@ -40,7 +40,7 @@ Gem::Specification.new do |s| s.required_ruby_version = ">= 2.3.0" - s.add_runtime_dependency("azure-storage-common", "~> 2.0") + s.add_runtime_dependency("azure-storage-common") s.add_runtime_dependency("nokogiri", "~> 1", ">= 1.10.8") s.add_development_dependency("dotenv", "~> 2.0") s.add_development_dependency("minitest", "~> 5") diff --git a/table/Gemfile b/table/Gemfile index 0b659b5..8314181 100644 --- a/table/Gemfile +++ b/table/Gemfile @@ -25,6 +25,8 @@ #-------------------------------------------------------------------------- source "https://rubygems.org" +gem 'azure-storage-common', path: '../common' + gemspec name: "azure-storage-table" gem "coveralls", require: false diff --git a/table/azure-storage-table.gemspec b/table/azure-storage-table.gemspec index 1c78ea4..2c87be4 100644 --- a/table/azure-storage-table.gemspec +++ b/table/azure-storage-table.gemspec @@ -40,7 +40,7 @@ Gem::Specification.new do |s| s.required_ruby_version = ">= 2.3.0" - s.add_runtime_dependency("azure-storage-common", "~> 2.0") + s.add_runtime_dependency("azure-storage-common") s.add_runtime_dependency("nokogiri", "~> 1", ">= 1.10.8") s.add_development_dependency("dotenv", "~> 2.0") s.add_development_dependency("minitest", "~> 5") diff --git a/table/lib/azure/storage/table/table_service.rb b/table/lib/azure/storage/table/table_service.rb index 6357b64..b3f040b 100644 --- a/table/lib/azure/storage/table/table_service.rb +++ b/table/lib/azure/storage/table/table_service.rb @@ -24,6 +24,7 @@ # THE SOFTWARE. #-------------------------------------------------------------------------- require "azure/storage/table/auth/shared_key" +require "cgi" module Azure::Storage include Azure::Storage::Common::Service @@ -741,14 +742,7 @@ module Azure::Storage protected def encodeODataUriValue(value) - # Replace each single quote (') with double single quotes ('') not double - # quotes (") - value = value.gsub("'", "''") - - # Encode the special URL characters - value = URI.escape(value) - - value + CGI.escape(value) end protected -- GitLab