java - 无法在从 Web 应用程序发送的 Android 应用程序中下载媒体文件

标签 java android amazon-s3

我正在开发聊天应用程序,我们有两个客户端,一个是 Android,另一个是 Web,当我将媒体文件从 Web 应用程序发送到 Android 时,我正在将媒体文件上传到 S3-Amazon客户端媒体文件未下载,显示如下错误。 媒体下载中断:com.amazonaws.services.s3.model.AmazonS3Exception:指定的键不存在。 (服务:Amazon S3;状态代码:404;错误代码:NoSuchKey;请求 ID:XXXXXXXXX),S3 扩展请求 ID:XXXXXXXXXXX

private void beginDownload(String key, String bucket, String 
 mediaType,final 
DownloadFileFromAwsCompletionListener listener) {
    // Location to download files from S3 to. You can choose any 
accessible
    // file.

    String localFilePath = Strings.EMPTY;
    try {
        //if (!isThumb) {
        localFilePath = MediaHelper.createMediaFile(mediaType, false, false, key);
       /* } else {
            localFilePath = MediaHelper.createMediaFile(mediaType, false, true);
        }*/
    } catch (Exception e) {
        e.printStackTrace();
    }
    if (!StringHelper.isNullOrEmpty(localFilePath)) {
        File file = new File(localFilePath);

        // Initiate the download
        TransferObserver observer = mTransferUtility.download(bucket, key, file);
        final String finalLocalFilePath = localFilePath;
        observer.setTransferListener(new TransferListener() {
            @Override
            public void onStateChanged(int id, TransferState state) {

                //String bucketPath = UrlStrings.XmppStrings.
                if (state.equals(TransferState.COMPLETED)) {
                    listener.onDownloadSuccess(finalLocalFilePath);
                }

            }

            @Override
            public void onProgressChanged(int id, long bytesCurrent, long bytesTotal) {

            }

            @Override
            public void onError(int id, Exception ex) {
                listener.onDatabaseError(new AwsFailure(ex));
            }
        });
    } else {
        getLogger().log(Strings.TAG, "xmpp beginDownload(): file could not be created.");
    }
}

最佳答案

您应该交叉检查上传路径和您用于从 S3 下载媒体文件的路径。我认为您正在使用不同的路径下载媒体文件,这就是您收到错误的原因。

关于java - 无法在从 Web 应用程序发送的 Android 应用程序中下载媒体文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52054717/

相关文章:

linux - 如何将 AWS CLI 升级到最新版本?

python - Django 1.8 缓存破坏 + Amazon S3

java - 迭代后检索值

java - 更改使用 wsimport 生成的 Web 服务客户端上的 URL

java - Java中类级同步是如何实现的?

xml - ADT 插件会自动创建一个 ant 构建文件吗?

java - 排序数组中的线性搜索 - Java

android - 无法通过 intent 在 android 中插入日历事件

android - initializeScrollbars 未定义?

ios - 以编程方式将默认加密 KMS 添加到存储桶