2017-05-17 66 views
2
上傳圖像S3

我無法通過部署在Amazon Elastic魔豆以下方法春季啓動應用程序上傳圖像S3:無法通過魔豆

@Autowired 
    private AmazonS3Client amazonS3Client; 

    amazonS3Client.setEndpoint(S3_REGION_ENDPOINT); 
    amazonS3Client.putObject(new PutObjectRequest(S3_BUCKET_NAME, key, fileToUpload)); 

日誌顯示以下錯誤:

Caused by: java.io.IOException: Permission denied 
    at java.io.UnixFileSystem.createFileExclusively(Native Method) 
    at java.io.File.createNewFile(File.java:1012) 
    at com.g2m.persistence.image.service.FileArchiveService.convertFromMultiPart(FileArchiveService.java:91) 
    at com.g2m.persistence.image.service.FileArchiveService.saveFileToS3(FileArchiveService.java:44) 

但是,當試圖使用本地端點(在本地運行Spring Boot)上傳圖像時,我設法成功地將圖像上傳到S3以及檢索它。

任何想法如何解決這個問題?它與S3權限有關還是什麼都沒有?

+0

你檢查了您的EC2實例的角色?你在本地機器上使用相同的用戶/憑證嗎?有一個類似的問題http://stackoverflow.com/questions/41667916/upload-file-to-s3-on-ec2-instance-permission-denied – siomes

+0

@siomes是的,我已經審查了角色,我用了相同的憑證以及從本地機器上傳 – blacky246

+0

請檢查您是否已設置存儲桶策略並授予IAM角色和權限正確。還要確保正確定義了文件或圖像的路徑。 :) –

回答

0

在我看來,你沒有正確實例化S3客戶端。你能否檢查你是否在實例化時提供了正確的憑據?

喜歡的東西

AWSCredentials credentials = new BasicAWSCredentials(accessKey, secretKey); 
amazonS3Client = new AmazonS3Client(credentials); 
+0

感謝您的答案傢伙。 @Tanmay Delhikar我實際上使用bean注入accessKey和secretKey如下: ** ** 所以,應該沒問題吧?即使改變了你的建議後,我仍然得到相同的錯誤 – blacky246

+0

是的,這聽起來正確。您試圖寫入的存儲區是否存在? –

+0

是的,它確實存在。當我使用本地端點(本地運行Spring Boot)上傳圖像時,它工作正常。但使用部署在Beanstalk上的應用程序上傳將返回此類錯誤 – blacky246