[ruby] Use Marcel to detect content-type in form-data file upload using faraday (#18243)

This commit is contained in:
Yohei Kitamura 2024-03-29 09:58:08 -04:00 committed by GitHub
parent de680de60e
commit 34ebc1c644
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 10 additions and 15 deletions

View File

@ -13,7 +13,7 @@ if [ "$NODE_INDEX" = "1" ]; then
echo "Running node $NODE_INDEX ..." echo "Running node $NODE_INDEX ..."
java -version java -version
sudo apt-get -y install cpanminus libmagic-dev sudo apt-get -y install cpanminus
(cd samples/client/petstore/perl && /bin/bash ./test.bash) (cd samples/client/petstore/perl && /bin/bash ./test.bash)
(cd samples/client/petstore/ruby && mvn integration-test) (cd samples/client/petstore/ruby && mvn integration-test)
@ -112,5 +112,3 @@ else
(cd samples/client/petstore/java/apache-httpclient && mvn integration-test) (cd samples/client/petstore/java/apache-httpclient && mvn integration-test)
fi fi

View File

@ -13,7 +13,7 @@ require 'typhoeus'
{{#isFaraday}} {{#isFaraday}}
require 'faraday' require 'faraday'
require 'faraday/multipart' if Gem::Version.new(Faraday::VERSION) >= Gem::Version.new('2.0') require 'faraday/multipart' if Gem::Version.new(Faraday::VERSION) >= Gem::Version.new('2.0')
require 'filemagic' require 'marcel'
{{/isFaraday}} {{/isFaraday}}
{{#isHttpx}} {{#isHttpx}}
require 'httpx' require 'httpx'

View File

@ -94,8 +94,7 @@
form_params.each do |key, value| form_params.each do |key, value|
case value case value
when ::File, ::Tempfile when ::File, ::Tempfile
filemagic = FileMagic.new(FileMagic::MAGIC_MIME) data[key] = Faraday::FilePart.new(value.path, Marcel::MimeType.for(Pathname.new(value.path)))
data[key] = Faraday::FilePart.new(value.path, filemagic.file(value.path, true))
when ::Array, nil when ::Array, nil
# let Faraday handle Array and nil parameters # let Faraday handle Array and nil parameters
data[key] = value data[key] = value

View File

@ -23,7 +23,7 @@ Gem::Specification.new do |s|
{{#isFaraday}} {{#isFaraday}}
s.add_runtime_dependency 'faraday', '>= 1.0.1', '< 3.0' s.add_runtime_dependency 'faraday', '>= 1.0.1', '< 3.0'
s.add_runtime_dependency 'faraday-multipart' s.add_runtime_dependency 'faraday-multipart'
s.add_runtime_dependency 'ruby-filemagic' s.add_runtime_dependency 'marcel'
{{/isFaraday}} {{/isFaraday}}
{{#isTyphoeus}} {{#isTyphoeus}}
s.add_runtime_dependency 'typhoeus', '~> 1.0', '>= 1.0.1' s.add_runtime_dependency 'typhoeus', '~> 1.0', '>= 1.0.1'

View File

@ -17,7 +17,7 @@ require 'tempfile'
require 'time' require 'time'
require 'faraday' require 'faraday'
require 'faraday/multipart' if Gem::Version.new(Faraday::VERSION) >= Gem::Version.new('2.0') require 'faraday/multipart' if Gem::Version.new(Faraday::VERSION) >= Gem::Version.new('2.0')
require 'filemagic' require 'marcel'
module OpenapiClient module OpenapiClient
@ -141,8 +141,7 @@ module OpenapiClient
form_params.each do |key, value| form_params.each do |key, value|
case value case value
when ::File, ::Tempfile when ::File, ::Tempfile
filemagic = FileMagic.new(FileMagic::MAGIC_MIME) data[key] = Faraday::FilePart.new(value.path, Marcel::MimeType.for(Pathname.new(value.path)))
data[key] = Faraday::FilePart.new(value.path, filemagic.file(value.path, true))
when ::Array, nil when ::Array, nil
# let Faraday handle Array and nil parameters # let Faraday handle Array and nil parameters
data[key] = value data[key] = value

View File

@ -30,7 +30,7 @@ Gem::Specification.new do |s|
s.add_runtime_dependency 'faraday', '>= 1.0.1', '< 3.0' s.add_runtime_dependency 'faraday', '>= 1.0.1', '< 3.0'
s.add_runtime_dependency 'faraday-multipart' s.add_runtime_dependency 'faraday-multipart'
s.add_runtime_dependency 'ruby-filemagic' s.add_runtime_dependency 'marcel'
s.add_development_dependency 'rspec', '~> 3.6', '>= 3.6.0' s.add_development_dependency 'rspec', '~> 3.6', '>= 3.6.0'

View File

@ -17,7 +17,7 @@ require 'tempfile'
require 'time' require 'time'
require 'faraday' require 'faraday'
require 'faraday/multipart' if Gem::Version.new(Faraday::VERSION) >= Gem::Version.new('2.0') require 'faraday/multipart' if Gem::Version.new(Faraday::VERSION) >= Gem::Version.new('2.0')
require 'filemagic' require 'marcel'
module Petstore module Petstore
@ -141,8 +141,7 @@ module Petstore
form_params.each do |key, value| form_params.each do |key, value|
case value case value
when ::File, ::Tempfile when ::File, ::Tempfile
filemagic = FileMagic.new(FileMagic::MAGIC_MIME) data[key] = Faraday::FilePart.new(value.path, Marcel::MimeType.for(Pathname.new(value.path)))
data[key] = Faraday::FilePart.new(value.path, filemagic.file(value.path, true))
when ::Array, nil when ::Array, nil
# let Faraday handle Array and nil parameters # let Faraday handle Array and nil parameters
data[key] = value data[key] = value

View File

@ -30,7 +30,7 @@ Gem::Specification.new do |s|
s.add_runtime_dependency 'faraday', '>= 1.0.1', '< 3.0' s.add_runtime_dependency 'faraday', '>= 1.0.1', '< 3.0'
s.add_runtime_dependency 'faraday-multipart' s.add_runtime_dependency 'faraday-multipart'
s.add_runtime_dependency 'ruby-filemagic' s.add_runtime_dependency 'marcel'
s.add_development_dependency 'rspec', '~> 3.6', '>= 3.6.0' s.add_development_dependency 'rspec', '~> 3.6', '>= 3.6.0'