Android App S3上传不起作用。没有错误
问题描述:
我正在构建一个android应用程序,它拍摄一张照片并将其上传到Amazon S3。我的代码似乎运行良好,因为它实际上正在运行(通过调试断点确认),但它不是上传。我没有收到错误消息,并且我放入应用程序的log.d消息没有出现在logcat中。Android App S3上传不起作用。没有错误
我第一次跑的代码,我得到了一个错误,抱怨TransferUtility.builder()
没有必须.s3Client
所以我把在
违规代码:
private void uploadImage(){
AWSConfiguration awsConfig =
new AWSConfiguration(getActivity().getApplicationContext());
AmazonS3Client s3Client = new AmazonS3Client(IdentityManager.getDefaultIdentityManager()
.getCredentialsProvider().getCredentials());
TransferUtility transferUtility =
TransferUtility.builder()
.context(getActivity().getApplicationContext())
.awsConfiguration(awsConfig)
.s3Client(s3Client)
.build();
TransferObserver uploadObserver =
transferUtility.upload(
"sniffer-gps-app/UserDogPhotos/"+userId+photoFile.getName(),
photoFile);
uploadObserver.setTransferListener(new TransferListener() {
@Override
public void onStateChanged(int id, TransferState state) {
if (TransferState.COMPLETED == state) {
//todo something here
Log.d("S3", "done");
nextFragment();
}
}
@Override
public void onProgressChanged(
int id, long bytesCurrent, long bytesTotal) {
Log.d("S3", "ID: "+id+"\r\nBytesCurrent: "+bytesCurrent+"\r\nBytesTotal: "+bytesTotal);
// TODO Auto-generated method stub
}
@Override
public void onError(int id, Exception ex) {
Log.d("S3", ex.toString());
Integer ID = id;
Log.d("S3", ID.toString());
}
});
}
photoFile
是一个File
对象。
sniffer-gps-app
是斗名
UserDogPhotos
是在桶
答
在我的清单中的服务标签是我的应用程序标签以外的文件夹中。
您是否添加了访问网络状态的权限?像这样: https://github.com/awslabs/aws-sdk-android-samples/blob/master/S3TransferUtilitySample/AndroidManifest.xml#L38 –
我绝对这样做。打电话给cognito和dynamoDB工作得很好。 – Reid