我正在构建一个Android应用程序,它可以拍摄照片并将其上传到Amazon S3。我的代码似乎运行正常,因为它实际上正在运行(通过调试断点确认),但它没有上传。我没有收到任何错误消息,我放入应用程序的log.d消息没有出现在logcat中。
我第一次运行代码时出现错误,抱怨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
是文件夹中的文件夹
答案 0 :(得分:2)
我的清单中的服务标签不在我的应用程序标签中。