여기 튜토리얼을 따르고 있습니다. http://docs.aws.amazon.com/AmazonS3/latest/dev/UploadObjSingleOpRuby.html 루비를 사용하여 S3에 파일을 업로드하는 방법을 배우기 위해 다음과 같이 썼습니다.
require 'aws-sdk'
s3 = Aws::S3::Client.new(
access_key_id: '.......',
secret_access_key: '........'
)
s3 = Aws::S3::Resource.new(region:'us-east-1')
obj = s3.bucket('aws-adms-whitelisting-rules').object('test')
obj.upload_file('~/Desktop/ruby/test.rb')
그러나 다음과 같은 오류가 발생했습니다.
/Library/Ruby/Gems/2.0.0/gems/aws-sdk-core-2.10.7/lib/aws-sdk-core/plugins/regional_endpoint.rb:34:in `after_initialize': missing region; use :region option or export region name to ENV['AWS_REGION'] (Aws::Errors::MissingRegionError)
from /Library/Ruby/Gems/2.0.0/gems/aws-sdk-core-2.10.7/lib/seahorse/client/base.rb:84:in `block in after_initialize'
from /Library/Ruby/Gems/2.0.0/gems/aws-sdk-core-2.10.7/lib/seahorse/client/base.rb:83:in `each'
from /Library/Ruby/Gems/2.0.0/gems/aws-sdk-core-2.10.7/lib/seahorse/client/base.rb:83:in `after_initialize'
from /Library/Ruby/Gems/2.0.0/gems/aws-sdk-core-2.10.7/lib/seahorse/client/base.rb:21:in `initialize'
from /Library/Ruby/Gems/2.0.0/gems/aws-sdk-core-2.10.7/lib/seahorse/client/base.rb:105:in `new'
from /Library/Ruby/Gems/2.0.0/gems/aws-sdk-resources-2.10.7/lib/aws-sdk-resources/resource.rb:169:in `extract_client'
from /Library/Ruby/Gems/2.0.0/gems/aws-sdk-resources-2.10.7/lib/aws-sdk-resources/resource.rb:15:in `initialize'
from test.rb:35:in `new'
from test.rb:35:in `<main>'
앞으로 나아갈 길을 보여 주시겠습니까? 감사
이를 수행하는 더 표준적인 방법은 Aws::S3::Client
생성 한 인스턴스에 대한 인수로 영역을 전달하는 것 입니다.
그런 다음 Aws::S3::Client
( docs ) 인스턴스를 만들고 있는 Aws::S3::Resource
( docs )에 전달할 수 있습니다 .
예를 들면 :
require 'aws-sdk'
s3 = Aws::S3::Client.new(
region: 'us-east-1',
access_key_id: '.......',
secret_access_key: '........'
)
resource = Aws::S3::Resource.new(client: s3)
obj = resource.bucket('aws-adms-whitelisting-rules').object('test')
obj.upload_file('~/Desktop/ruby/test.rb')
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다