【问题标题】:AWS/Android Unable to calculate md5 hashAWS/Android 无法计算 md5 哈希
【发布时间】:2013-12-04 14:09:54
【问题描述】:

我正在自定义 Amazon 的 S3 Uploader 示例程序以满足我的需要。创建存储桶后,我将视频上传到其中。

PutObjectRequest por = new PutObjectRequest(buckets.get(0).getName(), Constants.VIDEO_NAME, new java.io.File(filePath));

当我运行上面的行时,我得到下面的异常:

Unable to calculate MD5 has: /storage/....../bla.mp4: open failed: EACCES (Permission Denied)

堆栈跟踪:

12-04 14:39:21.981  29372-29441/com.amazonaws.demo.s3uploader E/ERR﹕ com.amazonaws.AmazonClientException: Unable to calculate MD5 hash: /storage/emulated/0/DCIM/Camera/VID_20131203_180120.mp4: open failed: EACCES (Permission denied)
            at com.amazonaws.services.s3.AmazonS3Client.putObject(AmazonS3Client.java:1139)
            at com.amazonaws.demo.s3uploader.S3UploaderActivity$S3PutObjectTask.doInBackground(S3UploaderActivity.java:160)
            at com.amazonaws.demo.s3uploader.S3UploaderActivity$S3PutObjectTask.doInBackground(S3UploaderActivity.java:120)
            at android.os.AsyncTask$2.call(AsyncTask.java:288)
            at java.util.concurrent.FutureTask.run(FutureTask.java:237)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
            at java.lang.Thread.run(Thread.java:841)
     Caused by: java.io.FileNotFoundException: /storage/emulated/0/DCIM/Camera/VID_20131203_180120.mp4: open failed: EACCES (Permission denied)
            at libcore.io.IoBridge.open(IoBridge.java:409)
            at java.io.FileInputStream.<init>(FileInputStream.java:78)
            at com.amazonaws.services.s3.AmazonS3Client.putObject(AmazonS3Client.java:1135)
            at com.amazonaws.demo.s3uploader.S3UploaderActivity$S3PutObjectTask.doInBackground(S3UploaderActivity.java:160)
            at com.amazonaws.demo.s3uploader.S3UploaderActivity$S3PutObjectTask.doInBackground(S3UploaderActivity.java:120)
            at android.os.AsyncTask$2.call(AsyncTask.java:288)
            at java.util.concurrent.FutureTask.run(FutureTask.java:237)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
            at java.lang.Thread.run(Thread.java:841)
     Caused by: libcore.io.ErrnoException: open failed: EACCES (Permission denied)
            at libcore.io.Posix.open(Native Method)
            at libcore.io.BlockGuardOs.open(BlockGuardOs.java:110)
            at libcore.io.IoBridge.open(IoBridge.java:393)
            at java.io.FileInputStream.<init>(FileInputStream.java:78)
            at com.amazonaws.services.s3.AmazonS3Client.putObject(AmazonS3Client.java:1135)
            at com.amazonaws.demo.s3uploader.S3UploaderActivity$S3PutObjectTask.doInBackground(S3UploaderActivity.java:160)
            at com.amazonaws.demo.s3uploader.S3UploaderActivity$S3PutObjectTask.doInBackground(S3UploaderActivity.java:120)
            at android.os.AsyncTask$2.call(AsyncTask.java:288)
            at java.util.concurrent.FutureTask.run(FutureTask.java:237)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
            at java.lang.Thread.run(Thread.java:841)

操作系统 = 4.4/KitKat,设备 = Nexus 4

发生了什么事?

【问题讨论】:

  • 完整堆栈跟踪,设备版本。

标签: android amazon-web-services amazon-s3 md5


【解决方案1】:

不要像我一样。在尝试上传到 S3 之前检查文件是否存在。

【讨论】:

    【解决方案2】:

    【讨论】:

    • AND 可能必须调用 ActivityCompat.requestPermissions(...)
    猜你喜欢
    • 1970-01-01
    • 2012-04-14
    • 1970-01-01
    • 2011-12-08
    • 1970-01-01
    • 2017-01-27
    • 1970-01-01
    • 1970-01-01
    • 2016-06-23
    相关资源
    最近更新 更多