[英]How to upload only files without creating SD-Card path in AWS S3?
我正在將圖像從SD卡上傳到AWS S3,它正確上傳,但是問題是它正在AWS中像這樣的“ /storage/sdcard0/Documents/ABCD/xyz.jpg”創建SD卡路徑文件夾,我只想文件而不創建任何文件夾。
String csvPath = Environment.getExternalStorageDirectory().getAbsolutePath()+"/Documents/ABCD/xyz.jpg";
S3PutObjectTask s3 = new S3PutObjectTask(this,fileName);
s3.execute(fileName);
public class S3PutObjectTask extends AsyncTask<String, Void, S3TaskResult> {
/*Variable*/
Activity activity;
String imageName;
String fileName;
ProgressDialog pDialog;
/*AWS*/
AmazonS3Client s3Client;
public S3PutObjectTask(Activity activity,String fileName) {
this.activity = activity;
this.fileName = fileName;
}
@Override
protected void onPreExecute(){
super.onPreExecute();
pDialog = new ProgressDialog(activity);
pDialog.setTitle("");
pDialog.setMessage("Please Wait...");
pDialog.setCancelable(false);
pDialog.show();
s3Client = new AmazonS3Client(new BasicAWSCredentials(AppConstants.ACCESS_KEY_ID, AppConstants.SECRET_KEY));
s3Client.setRegion(Region.getRegion(Regions.US_EAST_1));
}
@Override
protected S3TaskResult doInBackground(String... uris) {
S3TaskResult result = new S3TaskResult();
if (uris == null || uris[0].length()==0){
return null;
}
Uri selectedCSV = Uri.fromFile(new File(uris[0]));
ContentResolver resolver = activity.getContentResolver();
File file=new File(uris[0]);
ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentType("image/jpeg");
if(file.length()!=0){
metadata.setContentLength(file.length());
}
try {
PutObjectRequest por = new PutObjectRequest(AppConstants.getAbcdListBucket(),uris[0],
resolver.openInputStream(selectedCSV),metadata);
s3Client.putObject(por);
} catch (Exception exception) {
result.setErrorMessage(exception.getMessage());
}
return result;
}
protected void onPostExecute(S3TaskResult result){
if(pDialog!=null && pDialog.isShowing()){
pDialog.dismiss();
}
}
請仔細閱讀我的代碼,並向我提出一些解決方案。
第二個參數“字符串鍵”控制要上傳到的文件夾以及文件名。
PutObjectRequest(AppConstants.getAbcdListBucket(), "My Folder/filename.jpg", resolver.openInputStream(selectedCSV),metadata);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.