Менеджер загрузок загружает файл bin, если имя файла не указано (URL-адрес хранилища Google Cloud Storage) - PullRequest
0 голосов
/ 20 февраля 2019

У меня есть ссылка для загрузки в Google Cloud Storage, и я использую Android DownloadManager для загрузки файла, когда я загружаю файл без указания имени файла, в итоге происходит загрузка файла .bin.

Еще одна вещьэто: Если я пытаюсь вручную загрузить ссылку из браузера Chrome, она прекрасно работает.

fun  downloadFile() {
    val uri = Uri.parse("...") //link to the file
    Environment
        .getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
        .mkdirs()

    val request =
        DownloadManager.Request(uri)
            .setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED)
            //.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "file.jpg")

    val downloadManager = getSystemService(Context.DOWNLOAD_SERVICE) as DownloadManager
    downloadID = downloadManager.enqueue(request)
}

1 Ответ

0 голосов
/ 21 февраля 2019

Как правило, при использовании HTTP для загрузки файла с нужным именем файла сервер должен установить для заголовка Content-Disposition что-то вроде attachment; filename="filename.jpg".Это может быть установлено в GCS с метаданными .После того, как вы настроите расположение контента таким образом, DownloadManager должен соблюдать его при выборе имен файлов.

...