2016-01-14 33 views
0

我整天下午都在檢查是否存在上傳到AWS S3的文件。我使用Ruby On Rails和名爲aws-sdkv2的寶石。Ruby aws-sdk - 「.exists?」說即使我看到它在存儲桶中,該文件也不存在

首先 - 在文件中存在桶,它位於:

test_bucket/users/10/file_test.pdf 

有沒有錯字,這是確切的路徑。此外,存儲桶+憑據已正確設置。

這裏就是我嘗試檢查文件是否存在:

config = {region: 'us-west-1', bucket: AWS_S3_CONFIG['bucket'], key: AWS_S3_CONFIG['access_key_id'], secret: AWS_S3_CONFIG['secret_access_key']} 
Aws.config.update({region: config[:region], 
        credentials: Aws::Credentials.new(config[:key], config[:secret]), 
        :s3 => { :region => 'us-east-1' }}) 
bucket = Aws::S3::Resource.new.bucket(config[:bucket]) 

puts bucket.object("file_test.pdf").exists? 

輸出始終false

我也試過puts bucket.object("test_bucket/users/10/file_test.pdf").exists?,但還是false

此外,我試圖在AWS S3儀表板上公開該文件,但沒有成功,仍然是false。單擊生成的鏈接時該文件可見。

但問題是,當我檢查使用aws-sdk如果文件存在,輸出仍然是false

我在做什麼錯?

謝謝。

回答

1

您需要將完整路徑傳遞給對象(不包括存儲桶名稱) - users/10/file_test.pdf

相關問題