2016-10-10 10 views
0

ギャラリーから画像を取得した後、私は次の関数を呼び出しています。プログラムを実行すると、エラーは発生しませんが、S3バケットの画像は見つかりません。私はS3上に画像をアップロードするために次のコードを実装しました。

private void uploadImageToAWS {

final AsyncTask<String, String, String> _Task = new AsyncTask<String, String, String>() { 

     @Override 
     protected void onPreExecute() { 


     } 



     @Override 
     protected String doInBackground(String... arg0) 
     { 

      if (CheckNetStatus()) 
      { 
       try { 
        java.util.Date expiration = new java.util.Date(); 
        long msec = expiration.getTime(); 
        msec += 1000 * 60 * 60; // 1 hour. 
        expiration.setTime(msec); 
        publishProgress(arg0); 

        String existingBucketName = "nkupload"; 
        String keyName = "001"; 
       // String filePath = pathstring; 

        AmazonS3Client s3Client1 = new AmazonS3Client(new BasicAWSCredentials(access_key_id,secret_access_key)); 
        PutObjectRequest por = new PutObjectRequest(existingBucketName, 
          keyName + ".png",new File(pictureDirectoryPath));//key is URL 

        //making the object Public 
        por.setCannedAcl(CannedAccessControlList.PublicRead); 
        s3Client1.putObject(por); 


        String _finalUrl = "https://"+existingBucketName+".s3.amazonaws.com/" + keyName + ".png"; 

       } catch (Exception e) { 
        // writing error to Log 
        e.printStackTrace(); 
        Toast bread = Toast.makeText(getApplicationContext(), "An Error Occured", Toast.LENGTH_LONG); 
        bread.show(); 

       } 




      } 
      else 
      { 
       Toast bread = Toast.makeText(getApplicationContext(), "An Error Occured", Toast.LENGTH_LONG); 
       bread.show(); 

      } 


      return null; 

     } 
     @Override 
     protected void onProgressUpdate(String... values) { 
      // TODO Auto-generated method stub 
      super.onProgressUpdate(values); 
      System.out.println("Progress : " + values); 
     } 
     @Override 
     protected void onPostExecute(String result) 
     { 
      Toast bread = Toast.makeText(getApplicationContext(), "An Error Occured", Toast.LENGTH_LONG); 
      bread.show(); 
     } 
    }; 


    _Task.execute((String[]) null); 


} 

答えて

0

これは私が私のアップロード機能doInBackGroundに追加するものであり、それは正常に動作し、アップロードされた画像

AmazonS3Client s3Client = new AmazonS3Client(new BasicAWSCredentials(accessKey, secretKey)); 
      s3Client.setRegion(Region.getRegion(Regions.EU_CENTRAL_1)); 
      PutObjectRequest por = new PutObjectRequest(bucketName, folderName + "/" + fileName, new File(filePath)); 
      s3Client.putObject(por); 
      return s3Client.getResourceUrl(bucketName, folderName + "/" + fileName); 
+0

の新しいパスを返し、まだ動作していません – Shariq

関連する問題