如何上传图像到Amazon S3存储在android系统? [英] How can I upload an image to Amazon s3 bucket in android?
本文介绍了如何上传图像到Amazon S3存储在android系统?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在寻找这很长但不getting.I我有密钥和访问键上传,但仍然没能做到。
I am searching for this for a long but not getting.I am having secret key and access key for uploading but still not able to do..
推荐答案
下面是示例code将您获得钥匙&安培; BUCKET_NAME在code:
Here is sample code Put your won keys & bucket_name in code:
import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.services.s3.AmazonS3Client;
import com.amazonaws.services.s3.model.CannedAccessControlList;
import com.amazonaws.services.s3.model.PutObjectRequest;
import com.amazonaws.services.s3.model.PutObjectResult;
import com.amazonaws.services.s3.model.ResponseHeaderOverrides;
import com.worldofmoms.networklib.R;
import com.worldofmoms.networklib.listeners.IRequestListener;
import com.worldofmoms.networklib.utils.helpers.LocalLog;
import java.io.File;
public class UploadImageTask extends AsyncTask<String, Void, String> {
private ProgressDialog dialog;
private IRequestListener<Object> mListener;
private String mRequestTag;
Context mContext;
public UploadImageTask(Context context,String requestTag, IRequestListener<Object> listener)
{
mContext=context;
mRequestTag=requestTag;
this.mListener=listener;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
dialog = ProgressDialog.show(mContext, null, "", true);
dialog.setContentView(R.layout.loaders_progress_dialog);
dialog.setCancelable(false);
}
@SuppressWarnings("unused")
@Override
protected String doInBackground(String... params) {
String path = params[0];
return sendImageToAmazonS3Server(path);
}
@Override
protected void onProgressUpdate(Void... unsued) {}
@Override
protected void onPostExecute(String sResponse) {
if (dialog!=null && dialog.isShowing()) {
dialog.dismiss();
}
this.mListener.onRequestSuccess(mRequestTag, sResponse);
}
private String sendImageToAmazonS3Server(String Filepath){
//String MY_ACCESS_KEY_ID
String MY_ACCESS_KEY_ID = "Put Access key";
//String MY_SECRET_KEY
String MY_SECRET_KEY = "Put SECRET_KEY ";
//String MY_PICTURE_BUCKET
String MY_PICTURE_BUCKET = "bucketName";
//String MY_PICTURE_BUCKET = "wom-profilepics-test";
String rootUpload = Filepath;
File file = new File(rootUpload);
if (file.exists()) {
String fileExtension="jpg";
String imageNAME = String.valueOf(System.currentTimeMillis());
String fileNameToUpload = imageNAME+"."+fileExtension;
fileNameToUpload=fileNameToUpload.trim();
try {
AmazonS3Client s3Client = new AmazonS3Client(new BasicAWSCredentials(MY_ACCESS_KEY_ID, MY_SECRET_KEY));
// create bucket
//s3Client.createBucket(MY_PICTURE_BUCKET);
InputStream input = new URL("https://hi.co/bundles/hitomain/images/hi_big.png?v=1448090952").openStream();
ObjectMetadata objectMetadata = new ObjectMetadata();
PutObjectRequest por = new PutObjectRequest(MY_PICTURE_BUCKET,fileNameToUpload,input,objectMetadata);
por.setCannedAcl(CannedAccessControlList.PublicRead);
PutObjectResult result = s3Client.putObject(por);
LocalLog.d("PATH", "" + fileNameToUpload);
/*LocalLog.d("putting Object result ",""+ result.getETag()
//result.
+ " MD5 " + result.getContentMd5());*/
ResponseHeaderOverrides override = new ResponseHeaderOverrides();
override.setContentType("image/jpeg");
/*GeneratePresignedUrlRequest urlRequest = new GeneratePresignedUrlRequest( MY_PICTURE_BUCKET,imageNAME );
urlRequest.setExpiration( new Date(System.currentTimeMillis() + 3600000)); // Added an hour's worth of milliseconds to the current time.
urlRequest.setResponseHeaders(override);
URL url = s3Client.generatePresignedUrl( urlRequest );*/
//LocalLog.d(" S3 SERVER IMAGE PATH = ",""+url.toString());
String filePathOnServer = "http://"+MY_PICTURE_BUCKET+".s3.amazonaws.com/"+fileNameToUpload;
LocalLog.d(" S3 SERVER IMAGE PATH = ",""+filePathOnServer);
return filePathOnServer;
} catch (Exception e) {
LocalLog.printStackTrace(e);
return "";
}
} else {
return "";
}
}
}
这篇关于如何上传图像到Amazon S3存储在android系统?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文