URL-адрес объекта S3 — загрузка частичного файла (19 МБ / 100 МБ)

У меня есть файл установщика приложения Windows (.exe), сохраненный в ведре s3. Размер этого файла составляет 100 МБ, как указано в консоли s3.

У меня также есть веб-сайт, на котором я делаю URL-адрес объекта этого .exe доступным для определенных пользователей (например, https://s3.(region).amazonaws.com/(Bucket)/(имя_установщика).exe. В прошлом URL-адреса объекта было достаточно, чтобы пользователь мог загрузить установщик на свою локальную машину. Теперь вместо этого URL-адрес объекта загружает только частичный файл (19 МБ) на мою машину.

Если я зайду через консоль S3 и нажму кнопку "скачать"

Он отлично загружает полные 100 МБ на мой компьютер, но как только я использую URL-адрес объекта, он дает мне частичный файл.

У меня есть другой установщик для Mac (.dmg), который также занимает 100 МБ в другом каталоге s3 в том же сегменте. Для этого файла URL-адрес объекта работает просто отлично. Проблема только в этом .exe файле.

Кто-нибудь еще сталкивался с этим?

-Я попытался повторно загрузить файл на s3 на случай, если он может быть поврежден на самом s3. -Я пытался добавить метаданные в файл в s3, чтобы указать, что это приложение - Я исследовал использование AWS cli для загрузки файла вместо URL-адреса объекта, но это похоже на бинт - это должно работать.

вы абсолютно уверены, что у вас есть правильный URL-адрес объекта?

erik258 31.03.2023 17:33

Единственная разница между прямым использованием URL-адреса и ссылкой для скачивания в консоли заключается в том, что ссылка для скачивания предваряет URL-адрес, чтобы пометить его как вложение. Если вы сравните два URL-адреса, они должны быть идентичными по байтам до начала параметров запроса. Вы делали такое сравнение?

Anon Coward 31.03.2023 17:54

@ erik258 Я абсолютно уверен, что получил правильный URL-адрес объекта. Я проверил это вчетверо и добавил, что этот же URL-адрес функционировал в прошлом, и ничего в URL-адресе не изменилось с тех пор, как эти успешные итерации.

Tanner 31.03.2023 18:12

@AnonCoward Отличное предложение. Я только что сравнил их, и хотя URL-адреса одинаковы, я заметил, что один из заголовков изменился. В запросе URL-адреса объекта длина содержимого составляет 20676608 (около 20 МБ) байт, но в запросе URL-адреса загрузки ожидаемая длина содержимого составляет 105589205 (около 100 МБ). Это похоже на суть проблемы. Я собираюсь копать дальше.

Tanner 31.03.2023 18:12

Как вы запрашиваете URL-адрес объекта, который вызывает отправку (короткого) заголовка длины содержимого? Это необязательно. Почему ваш HTTP-клиент отправляет его?

jarmod 31.03.2023 18:42

@jarmod Все, что я делаю, это нажимаю ссылку «URL-адрес объекта» в консоли aws для этого конкретного файла. Я смотрю вкладку сети, пока она обрабатывается, и проверяю заголовок сетевого запроса для этой загрузки.

Tanner 31.03.2023 19:16

Ссылка «URL-адрес объекта» всегда содержит только URL-адрес объекта без каких-либо параметров запроса. Сгенерированная ссылка для скачивания не включает длину содержимого. Как вы получаете URL-адрес с указанной длиной содержимого?

Anon Coward 31.03.2023 19:41
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
7
56
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Итак, я не обязательно нашел ПРИЧИНУ этой странности. Но я нашел способ решить эту проблему.

Я обнаружил, что ТОЛЬКО это конкретное имя файла вызывало проблемы. Если я сохранил нужный файл под любым другим именем, он работал нормально. Поэтому я просто изменил имя.

Может быть, это поможет кому-то еще!

Были ли в имени файла установщика какие-либо необычные символы, например +? Вы сравнивали записи журнала доступа к S3 для неудачных и успешных загрузок?

Michael - sqlbot 01.04.2023 01:11

Было бы неплохо понять первопричину здесь. Трудно представить, что это просто ключ загружаемого объекта.

jarmod 02.04.2023 19:32

Другие вопросы по теме