Загрузка файлов. Справка
- Остановка и возобновление загрузки
- Сохранить файл, который открыт для просмотра
- Как открыть загруженный файл
- Куда сохраняются загруженные файлы
- Посмотреть список загрузок в Браузере
- Уведомления
- Горячие клавиши для работы с загрузкой
- Проблемы с загрузкой
По нажатию ссылки можно скачать файл или открыть для просмотра. Файл открывается для просмотра, если Яндекс Браузер поддерживает его формат, и загружается на компьютер, если не поддерживает. Как только файл начинает загружаться, справа от В адресную строку можно вводить поисковые запросы — Браузер сам поймет, что вам нужно.
«}}»> появляется значок файла с индикатором загрузки .
Примечание. При загрузке архивов и исполняемых файлов Браузер проверяет наличие вирусов и нежелательного ПО.
Вызовите контекстное меню для значка загружаемого файла .
Нажмите пункт Остановить загрузку.
Вызовите контекстное меню для значка загружаемого файла .
Нажмите пункт Возобновить загрузку.
Остановить загрузку файла
Возобновить загрузку файла
В правой части Умной строки нажмите кнопку Сохранить:
В правой части Умной строки нажмите значок .
Нажмите значок загруженного файла.
В правой части Умной строки нажмите значок .
Выберите нужный файл. Если в списке последних загрузок его нет, нажмите ссылку Открыть папку.
В правой части Умной строки нажмите значок .
Выберите файл нужного формата.
Нажмите → Открывать <формат файла> автоматически.
Открыть последний загруженный файл
Открыть ранее загруженный файл
Открывать загруженные файлы автоматически
По умолчанию файлы сохраняются в следующих папках:
Операционная система | Путь |
---|---|
Windows 7, Windows 8, Windows 10 | Users\<учетная запись пользователя>\Загрузки |
macOS | Users/<учетная запись пользователя>/Downloads |
Примечание. Поддержка операционных систем Microsoft Windows XP и Vista прекращена с апреля 2017 года.
В правой части Умной строки нажмите значок .
В правом верхнем углу открывшегося окна нажмите ссылку Открыть папку.
Нажмите → Настройки → Инструменты.
В блоке Загруженные файлы указан путь к папке с файлами.
Нажмите → Настройки → Инструменты.
В блоке Загруженные файлы нажмите ссылку с названием папки, где сохраняются файлы, и выберите папку.
Примечание. Чтобы Браузер запрашивал папку для сохранения файлов, включите опцию Всегда спрашивать, куда сохранять файлы. Это позволит и переименовывать файлы при загрузке.
Открыть папку Загрузки
Узнать, в какую папку у вас сохраняются загруженные файлы
Изменить папку для загруженных файлов
Чтобы перейти к списку всех загруженных файлов, нажмите → Загрузки.
Нажмите → Загрузки.
Выберите нужный файл.
Напротив файла нажмите Ещё и выберите пункт меню Убрать из списка.
Нажмите → Загрузки.
В левом нижнем углу страницы нажмите ссылку Скрыть загруженные.
Нажмите → Загрузки.
В левом нижнем углу страницы нажмите ссылку Открыть папку.
Выделите нужные файлы.
Нажмите клавишу Delete.
Скрыть файл из загрузок
Файл будет удален из списка загрузок, но не с компьютера. Вы найдете его в папке, в которой файл сохранился при загрузке.
Очистить список загрузок
В результате список загрузок в Браузере будет очищен. Сами файлы с компьютера удалены не будут.
Удалить загруженные файлы
Чтобы получать сообщения о завершении загрузки и предупреждения о том, что файл уже скачивался:
Нажмите → Настройки → Инструменты.
В блоке Загруженные файлы включите опции Показывать уведомления об окончании загрузок и Предупреждать, если файл уже скачан.
Горячие клавиши | |
---|---|
Открыть список загруженных файлов | Ctrl + J |
Открыть инструмент очистки истории, кеша и загрузок | Ctrl + Shift + Del |
Сохранить страницу как… | Ctrl + S |
Распечатать страницу | Ctrl + P |
Загрузить файл (формата epub, pdf) без предварительного просмотра | Alt + нажать ссылку |
Горячие клавиши | |
---|---|
Открыть список загруженных файлов | Shift + ⌘ + J |
Сохранить страницу как… | ⌘ + S |
Распечатать страницу | ⌘ + P |
Нажмите → Загрузки или нажмите клавиши Ctrl + J.
Выберите нужный файл.
Справа нажмите Продолжить загрузку.
Нажмите → Загрузки или нажмите клавиши Ctrl + J.
Выберите нужный файл.
Справа нажмите Скачать заново.
Нажмите → Настройки.
Перейдите на вкладку Безопасность.
В блоке Защита от угроз отключите опцию Проверять безопасность посещаемых сайтов и загружаемых файлов.
Откройте → Дополнения и отключите все расширения.
Повторите загрузку файлов.
Зайдите на сайт Google Диска. В правой части Умной строки нажмите значок .
В блоке Трекеры на этой веб-странице нажмите ссылку Сайт не работает?
В открывшемся окне нажмите Разрешить сторонние cookie.
загрузка файла длится более 15 минут;
загружается несколько файлов.
Нажмите → Настройки → Инструменты.
В блоке Загруженные файлы включите опцию Показывать уведомления об окончании загрузок.
Браузер блокирует загрузку файлов
Если загружаемый файл содержит вредоносную программу, Браузер заблокирует его. Подробнее см. раздел Блокировка опасных файлов.
Загрузка прервалась
Попробуйте возобновить загрузку:
Если загрузка не возобновляется, попробуйте скачать файл заново:
На загрузку может влиять антивирус, установленный на вашем компьютере. Попробуйте временно отключить антивирус и загрузить файлы снова.
Браузер слишком долго проверяет файлы
Внимание. Вы можете отключить проверку загружаемых файлов, но для этого вам придется полностью отключить в Браузере защиту от вредоносных сайтов и программ. Мы настоятельно рекомендуем этого не делать.
Если вы все-таки хотите отключить проверку файлов:
Медленная загрузка файлов
Не скачиваются файлы с Google Диска
Нет уведомления об окончании загрузки
Уведомление об окончании загрузки появляется, если:
Проверьте, включены ли в Браузере уведомления об окончании загрузки:
Картинка скачивается в формате WebP
Формат загружаемой картинки зависит от сервера. Сервер может генерировать формат WebP, если он определил Яндекс Браузер как программу, распознающую WebP. В этом случае Браузер не может повлиять на выбор формата.
Не везде картинки скачиваются в WebP. Например, изображение с Яндекс Картинок будет сохранено в формате JPEG.
Написать в службу поддержки
Была ли статья полезна?
Загружайте файлы любого размера — бесплатно до 5 ГБ
Нужно загрузить файлы размером более 5 Гб?
С нашими платными планами вы можете загружать от 250 Гб до файлов любого размера
Ознакомьтесь с нашими платными планами
Как загружать большие файлы с помощью Filemail
1.
Выберите файл или папкуНайдите и выберите файлы, которые вы хотите загрузить. Или вы можете перетащить файлы. Вы даже можете оставить сообщение на странице загрузки.
2. Загрузите свои файлы
Как только файлы будут выбраны, мы начнем их загрузку. Благодаря сквозному шифрованию и надежному хостингу файлов ваши файлы находятся в безопасности.
3. Поделиться ссылкой на скачивание
После завершения загрузки мы разместим ваши файлы в облаке. Вы получите прямую ссылку на сохраненные файлы. Вы можете поделиться ссылкой с кем угодно и где угодно.
Преимущества использования Filemail для отправки файлов
Загрузка больших файлов
Вы можете бесплатно загружать большие файлы или папки размером до 5 ГБ.
Анонимная загрузка файлов
Мы предлагаем услугу обмена файлами без необходимости создания учетной записи. Вам не нужно регистрироваться и создавать учетную запись, чтобы загружать и обмениваться файлами.
Загрузка файлов без рекламы
Когда мы говорим, что вы можете загружать свои файлы бесплатно, мы имеем в виду совершенно бесплатно. Без затрат, без рекламы, без отвлекающих факторов.
Быстрая скорость передачи данных
Мы не ограничиваем скорость передачи данных. Наши серверы расположены по всему миру, и мы передаем ваши файлы на ближайший к вашему местоположению сервер.
Безопасная загрузка файлов
Ваши файлы передаются на наш сервер в безопасном режиме благодаря сквозному шифрованию по HTTPS, TLS1.2 и SHA256.
На всех платформах
Вы можете загружать файлы в Filemail любым способом. Используйте браузер, наши настольные приложения, приложение для iOS или даже приложение для Android.
Антивирусная защита
Мы проверяем все файлы, загружаемые на Filemail, на наличие вирусов и вредоносных программ. Загруженный вами файл будет скачан.
Налаженный бизнес
Мы помогаем людям загружать и делиться информацией с 2008 года. Мы не являемся побочным проектом и не работаем на пожертвования. Мы не находимся в бета-версии.
ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ
Как долго мы храним ваши файлы?
Мы размещаем ваши файлы в нашем облачном хранилище в течение 7 дней. По истечении 7-го дня ваши файлы автоматически удаляются. Если вы хотите хранить файлы дольше и выбрать дату окончания срока действия, наши платные тарифные планы помогут вам в этом.
Существуют ли ограничения на загрузку?
Нет, ограничений на загрузку нет. Ваши общие файлы могут быть загружены столько раз, сколько вы хотите, и таким количеством людей, сколько вы хотите. Вы получите уведомление о том, что кто-то скачал файл. Единственное ограничение — файлы становятся недоступными через 7 дней.
Существуют ли ограничения на загрузку файлов?
Ограничения нашей бесплатной услуги, не требующей аккаунта, заключаются в том, что вы можете загружать любое количество файлов, но их общий объем не может превышать 5 ГБ за одну сессию загрузки. Вы можете провести 2 сеанса загрузки в течение 24 часов. Все наши платные тарифные планы предоставляют неограниченное количество сеансов загрузки, и вы можете загружать файлы любого размера.
Какие типы файлов я могу загружать?
У нас нет ограничений на тип файла, поэтому вы можете загружать файлы любого типа. Мы не разрешаем загружать файлы, которые противоречат нашим Условиям использования.
Как загружать быстрее?
Загрузка через браузер осуществляется на основе TCP, что может быть медленнее, чем хотелось бы. Она использует только часть вашей скорости и зависит от условий трафика и других пользователей, разделяющих соединение. Если вам нужна более высокая скорость передачи данных, мы рекомендуем вам использовать наше решение для настольных компьютеров на базе UDP. Оно отличается невероятной скоростью.
Отзывы клиентов
Мэтью Линг (Zest Media Videography)
Для меня Filemail — идеальный помощник в передаче медиафайлов. Он быстр, надежен и, на мой взгляд, намного лучше, чем любая другая платформа для передачи файлов. A+
Фабио Дондина (BlueWin)
Я пользуюсь Filemail уже несколько лет с большим удовольствием. Это очень быстрый сервис, особенно с приложением Filemail Desktop, как для загрузки, так и для скачивания. Кроме того, вы можете легко загружать файлы размером более 2 ГБ, а локализация на итальянский язык делает все простым и понятным.
Хорхе Элиас Аларкон (Голливудский канал)
Filemail решил все мои проблемы с передачей файлов, с которыми я сталкивался в прошлом. Быстрый, надежный, удобный в использовании. Очень доволен сервисом. Мы отправляем наши шоу по всему миру, Filemail нам очень помогает.
Загружайте файлы любого размера со скоростью, превышающей скорость вашего браузера
Хранение 1 ТБ, ускорение передачи данных UDP, собственный брендированный поддомен и многое другое.
Ознакомьтесь с нашими платными планами
Загрузка файла на веб-сервер в ASP.NET с использованием Visual Basic .NET
Версия данной статьи для Microsoft Visual C# .NET: (Эта ссылка может указывать на содержимое полностью или частично на английском языке).
В ЭТОЙ ЗАДАЧЕ
-
АННОТАЦИЯ
Создание приложения ASP.NET
-
Создание каталога Data
org/ListItem»>
Изменение страницы WebForm1.aspx
Добавление кода загрузки в файл кода WebForm1.aspx.vb
-
Проверка приложения
-
Загрузка файлов большого размера
Полный листинг кода
- org/ListItem»>
WebForm1.aspx
-
WebForm1.aspx.vb
ССЫЛКИ
Аннотация
В данной статье подробно описывается процесс загрузки файла на веб-сервер в ASP.NET с помощью Visual Basic .NET. Описывается создание файла ASP.NET (WebForm1.aspx) и соответствующего файла вспомогательного кода (WebForm1.aspx.vb), предназначенных для загрузки файлов в каталог с именем Data.
К началу статьи
Создание приложения ASP.NET
Для того чтобы создать новое приложение для загрузки файлов на веб-сервер, выполните в Microsoft Visual Studio .NET следующие действия:
-
Запустите Microsoft Visual Studio .NET.
-
В меню File последовательно выберите команды New и Project.
-
В диалоговом окне New Project (создать проект) выберите в разделе Project Types (типы проектов) пункт Visual Basic Projects (проекты Visual Basic Projects), а затем в разделе Templates выберите ASP. NET Web Application (веб-приложение ASP.NET).
-
Чтобы создать проект, введите в поле Location (местоположение) URL-адрес. В данном примере необходимо ввести http://localhost/VBNetUpload, что приведет к созданию проекта с именем по умолчанию VBNetUpload. Имейте в виду, что файл WebForm1.aspx загружается в режиме конструктора Visual Studio .NET.
К началу статьи
Создание каталога Data
После создания приложения необходимо создать каталог Data, который будет принимать загруженные файлы. После создания этого каталога необходимо предоставить рабочей учетной записи ASPNET разрешения на запись.
В окне Solution Explorer (обозреватель решений) Visual Studio .NET щелкните правой кнопкой мыши пункт VBNetUpload, выберите команду Add (добавить), а затем выберите New Folder (новая папка). По умолчанию создается папка с именем NewFolder1.
Чтобы изменить имя папки на Data, щелкните папку NewFolder1 правой кнопкой мыши, выберите команду Rename (переименовать) и введите Data.
Откройте проводник и перейдите к папке Data, созданной в действии 2. По умолчанию эта папка расположена в следующей папке:
C:\Inetpub\wwwroot\VBNetUpload\Data
Чтобы изменить параметры безопасности таким образом, чтобы предоставить разрешения на запись в каталог Data, щелкните папку Data правой кнопкой мыши и выберите пункт Свойства.
В диалоговом окне Свойства: Data выберите вкладку Безопасность и нажмите кнопку Добавить.
В диалоговом окне Выбор пользователей и групп выберите учетную запись ASPNET и нажмите кнопку Добавить. Чтобы закрыть диалоговое окно Выбор пользователей и групп, нажмите кнопку ОК.
Выберите учетную запись aspnet_wp (имя_компьютера\ASPNET) или учетную запись сетевой службы, если используются службы Microsoft Internet Information Services (IIS) 6. 0, и установите флажки Разрешить для следующих разрешений:
Снимите остальные флажки Разрешить и Запретить.
Чтобы закрыть диалоговое окно Свойства: Data, нажмите кнопку ОК. После этого у папки Data появятся разрешения на прием файлов, загруженных пользователем.
К началу статьи
Изменение страницы WebForm1.aspx
Чтобы изменить код HTML файла WebForm1.aspx, для того чтобы разрешить пользователям загружать файлы, выполните следующие действия:
- org/ListItem»>
-
Чтобы просмотреть исходный код HTML страницы WebForm1.aspx, щелкните в окне конструктора файл WebForm1.aspx правой кнопкой мыши и выберите команду View HTML Source (просмотреть исходный текст HTML).
-
Найдите следующий код HTML, содержащий тег <form>:
<form method="post" runat="server">
-
Добавьте в тег <form> атрибут «имя-значение» enctype=»multipart/form-data», как показано ниже:
<form method="post" enctype="multipart/form-data" runat="server">
org/ListItem»>
-
Убедитесь в том, что тег HTML <form> выглядит следующим образом:
<form method="post" enctype="multipart/form-data" runat="server">
<INPUT type=file id=File1 name=File1 runat="server" />
<br>
<input type="submit" value="Upload" runat="server" />
</form>
Вернитесь в открытый экземпляр Visual Studio .NET. В окне конструктора должен быть открыт файл WebForm1.aspx.
После открывающего тега <form> добавьте следующий код:
<INPUT type=file id=File1 name=File1 runat="server" />
<br>
<input type="submit" value="Upload" runat="server" />
К началу статьи
Добавление кода загрузки в файл кода WebForm1. aspx.vb
Чтобы изменить файл кода WebForm1.aspx.vb таким образом, чтобы он принимал загруженные данные, выполните следующие действия:
-
В меню View (вид) выберите пункт Design (конструктор).
-
Дважды щелкните пункт Upload (загрузка). Visual Studio откроет файл кода WebForm1.aspx.vb и автоматически создаст следующий код метода:
Private Sub Submit1_ServerClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Submit1.ServerClick
End Sub
org/ListItem»>
-
Найдите следующий код:
Private Sub Submit1_ServerClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Submit1.ServerClick
-
Нажмите клавишу «ВВОД», чтобы добавить пустую строку, и добавьте следующий код:
If Not File1. PostedFile Is Nothing And File1.PostedFile.ContentLength > 0 Then
Dim fn As String = System.IO.Path.GetFileName(File1.PostedFile.FileName)
Dim SaveLocation as String = Server.MapPath("Data") & "\" & fn
Try
File1.PostedFile.SaveAs(SaveLocation)
Response.Write("The file has been uploaded.")
Catch Exc As Exception
Response.Write("Error: " & Exc.Message)
End Try
Else
Response.Write("Please select a file to upload.")
End IfЭтот код сначала проверяет, что файл был загружен. Если файл не выбран, появится сообщение «Please select a file to upload» (выберите файл для загрузки). Если загружен допустимый файл, его имя извлекается с помощью пространства имен System.IO, а его назначение собирается в пути SaveAs. После того, как станет известно окончательное назначение, файл сохраняется с помощью метода File1.PostedFile.SaveAs. В случае возникновения исключения на экран выводится сообщение об исключении.
-
Убедитесь в том, что процедура Submit1 выглядит следующим образом:
Private Sub Submit1_ServerClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Submit1.ServerClick
If Not File1.PostedFile Is Nothing And File1.PostedFile.ContentLength > 0 Then
Dim fn As String = System.IO.Path.GetFileName(File1.PostedFile.FileName)
Dim SaveLocation as String = Server.MapPath("Data") & "\" & fn
Try
File1.PostedFile.SaveAs(SaveLocation)
Response.Write("The file has been uploaded.")
Catch Exc As Exception
Response.Write("Error: " & Exc.Message)
End Try
Else
Response.Write("Please select a file to upload.")
End If
End Sub
Убедитесь в том, что приведенный ниже код существует на уровне классов файла WebForm1.vb:
Protected WithEvents Submit1 As System.Web.UI.HtmlControls.HtmlInputButton
Protected WithEvents File1 As System.Web.UI.HtmlControls.HtmlInputFile
Если данный код в файле отсутствует, добавьте этот код в файл после следующей строки:
Inherits System.Web.UI.Page
К началу статьи
Проверка приложения
Чтобы скомпилировать решение Visual Studio . NET и проверить приложение, выполните следующие действия:
-
В меню Build (построить) выберите команду Build Solution (построить решение).
-
В окне обозревателя решений щелкните файл WebForm1.aspx правой кнопкой мыши и выберите команду View in Browser (просмотреть в обозревателе).
-
После того, как файл WebForm1.aspx откроется в обозревателе, нажмите кнопку Обзор.
-
В диалоговом окне Выбор файла выберите файл размером менее 4 мегабайт (МБ) и нажмите кнопку Открыть.
-
Чтобы загрузить файл, нажмите кнопку Отгрузить. Обратите внимание, что файл загружается на веб-сервер, после чего появляется сообщение «The file has been uploaded» (файл загружен).
-
Вернитесь в открытое окно проводника и перейдите в каталог Data.
-
Убедитесь в том, что файл был загружен в каталог Data.
К началу статьи
Загрузка файлов большого размера
По умолчанию ASP. NET разрешает загружать на веб-сервер только файлы размером не более 4096 килобайт (КБ) (или 4 мегабайт [МБ]). Чтобы загружать файлы большего размера, необходимо изменить параметр maxRequestLength в разделе <httpRuntime> файла Web.config.
Примечание При установке значения атрибута maxRequestLength в файле Machine.config и последующей отправке запроса (например, на загрузку файла), превышающего значение параметра maxRequestLength, будет невозможно вывести пользовательскую страницу с сообщением об ошибке. Вместо этого обозреватель Microsoft Internet Explorer выведет сообщение «Не удается найти сервер или ошибка DNS».
Если необходимо изменить этот параметр для всего компьютера, а не только для данного приложения ASP.NET, следует изменить файл Machine.config.
По умолчанию для элемента <httpRuntime> в файле Machine.config заданы следующие параметры:
<httpRuntime
executionTimeout="90"
maxRequestLength="4096"
useFullyQualifiedRedirectUrl="false"
minFreeThreads="8"
minLocalRequestFreeThreads="4"
appRequestQueueLimit="100"
/>
Файл Machine. config находится в папке \Корневой каталог системы\Microsoft.NET\Framework\Номер версии\Config.
К началу статьи
Полный листинг кода
WebForm1.aspx
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm1.aspx.vb" Inherits="VBNetUpload.WebForm1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>WebForm1</title>
<meta name="GENERATOR" content="Microsoft Visual Studio.NET 7.0">
<meta name="CODE_LANGUAGE" content="Visual Basic 7.0">
<meta name=vs_defaultClientScript content="JavaScript">
<meta name=vs_targetSchema content="http://schemas. microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout"><form enctype="multipart/form-data" method="post" runat="server">
<INPUT type=file id=File1 name=File1 runat="server" >
<br>
<input type="submit" value="Upload" runat="server" NAME="Submit1">
</form>
</body>
</HTML>
К началу статьи
WebForm1.aspx.vb
Public Class WebForm1
Inherits System.Web.UI.Page
Protected WithEvents File1 As System.Web.UI.HtmlControls.HtmlInputFile
Protected WithEvents Submit1 As System.Web.UI.HtmlControls.HtmlInputButton#Region " Web Form Designer Generated Code "
'Этот вызов необходим для конструктора веб-форм.
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
End Sub
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: 'Этот вызов метода необходим для конструктора веб-форм.
'Не изменяйте его в редакторе кода.
InitializeComponent()
End Sub
#End Region
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Поместите сюда пользовательский код для инициализации страницы
End Sub
Private Sub Submit1_ServerClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Submit1.ServerClick
If Not File1.PostedFile Is Nothing And File1.PostedFile.ContentLength > 0 Then
Dim fn As String = System.IO.Path.GetFileName(File1.PostedFile.FileName)
Dim SaveLocation as String = Server.MapPath("Data") & "\" & fn
Try
File1.PostedFile.SaveAs(SaveLocation)
Response.Write("The file has been uploaded. ")
Catch Exc As Exception
Response.Write("Error: " & Exc.Message)
End Try
Else
Response.Write("Please select a file to upload.")
End If
End Sub
End Class
К началу статьи
Дополнительная информация
Теоретически максимальный размер загружаемого файла является достаточно большим. Однако из-за наблюдения за состоянием системы ASP.NET в ASP.NET невозможно загружать очень большие файлы. Рабочий процесс ASP.NET имеет виртуальное адресное пространство размером 2 гигабайта (ГБ). Однако рабочий процесс ASP.NET использует лишь немногим менее 1 ГБ из-за наблюдения за состоянием системы и фрагментации памяти.
В процессе загрузки ASP.NET загружает файл целиком в память, прежде чем пользователь сможет сохранить файл на диск. Поэтому процесс может перезапуститься из-за атрибута memoryLimit
тега processModel в файле Machine. config. Значение атрибута memoryLimit представляет долю в процентах физической памяти, которую рабочий процесс ASP.NET может использовать до автоматического перезапуска процесса. Перезапуск процесса предотвращает утечки памяти, которые могут привести к сбою ASP.NET или к тому, что процесс перестанет отвечать на запросы.
Кроме того, на максимальный размер загружаемого файла влияют также и другие факторы. Такими факторами являются объем доступной памяти, объем свободного места на жестком диске, скорость процессора и текущий сетевой трафик. При регулярной загрузке файлов рекомендуется использовать файлы, максимальный размер которых находится в диапазоне от 10 до 20 мегабайт (МБ). Если файлы загружаются редко, максимальный размер файла можно установить равным 100 МБ.
Примечание. В ASP.NET можно загружать файлы, размер которых превышает 100 МБ . Однако рекомендуется придерживаться максимальных размеров загружаемых файлов, приведенных в данной статье. Чтобы более точно определить размеры файлов, выполните нагрузочное тестирование на компьютерах, подобных тем, которые будут использоваться в рабочей среде.
При превышении предельных размеров файлов в процессе загрузки могут появиться следующие сообщения об ошибках:
-
Не удается отобразить страницу.
-
Приложение сервера недоступно
В журнале событий сообщение об ошибке будет подобно приведенному ниже:
-
Возникло исключение типа System.OutOfMemoryException.
Также можно обнаружить, что загрузка происходит очень медленно. При наблюдении за процессом Aspnet_wp.exe в диспетчере задач Windows можно заметить, что параметр «Память — изменение» изменяется на 64 КБ каждые 1-2 секунды. При определенном размере файла эта задержка может привести к перезапуску рабочего процесса ASP.NET из-за ошибки responseDeadlock.
Ссылки
Дополнительные сведения см. на следующих веб-узлах MSDN (Microsoft Developer Network):
К началу статьи
Общие сведения о загрузке файлов Azure IoT Hub
- Статья
- 11 минут на чтение
Существует множество сценариев, в которых вы не можете легко сопоставить данные своего устройства с относительно небольшими сообщениями, передаваемыми с устройства в облако, которые принимает Центр Интернета вещей. Например, отправка больших медиафайлов, таких как видео; или отправка больших пакетов телеметрии, которые либо загружаются периодически подключаемыми устройствами, либо объединяются и сжимаются для экономии полосы пропускания.
Когда вам нужно загрузить большие файлы с устройства, вы по-прежнему можете использовать безопасность и надежность Центра Интернета вещей. Однако вместо того, чтобы передавать сообщения через себя, Центр Интернета вещей действует как диспетчер для связанной учетной записи хранения Azure. Центр Интернета вещей также может отправлять уведомления серверным службам, когда устройство завершает загрузку файла.
Если вам нужна помощь в принятии решения о том, когда использовать сообщаемые свойства, сообщения устройства в облако или загрузку файлов, см. руководство по обмену данными между устройством и облаком.
Важно
Функция загрузки файлов на устройствах, использующих аутентификацию центра сертификации (ЦС) X.509, находится в общедоступной предварительной версии, и режим предварительного просмотра должен быть включен. Как правило, он доступен на устройствах, которые используют проверку подлинности по отпечатку пальца X.509 или аттестацию сертификата X.509 в службе подготовки устройств Azure. Дополнительные сведения об аутентификации X.509 с помощью Центра Интернета вещей см. в разделе Поддерживаемые сертификаты X.509.
Обзор отправки файлов
Центр Интернета вещей упрощает отправку файлов с подключенных устройств, предоставляя им URI подписи общего доступа (SAS) для каждой загрузки для контейнера больших двоичных объектов и учетной записи хранения Azure, которые были предварительно настроены для работы с концентратором. Использование загрузки файлов с помощью Центра Интернета вещей состоит из трех частей: предварительная настройка учетной записи хранения Azure и контейнера BLOB-объектов в Центре Интернета вещей, загрузка файлов с устройств и, при необходимости, уведомление серверных служб о завершенных загрузках файлов.
Прежде чем использовать функцию отправки файлов, необходимо связать учетную запись хранения Azure и контейнер больших двоичных объектов с центром Интернета вещей. Вы также можете настроить параметры, которые управляют тем, как Центр Интернета вещей выполняет аутентификацию в хранилище Azure, временем жизни (TTL) URI SAS, которые Центр Интернета вещей передает устройствам, и уведомлениями о загрузке файлов в ваши серверные службы. Дополнительные сведения см. в разделе Связывание учетной записи хранения Azure с Центром Интернета вещей.
Устройства выполняют трехэтапный процесс загрузки файла в связанный контейнер больших двоичных объектов:
Устройство инициирует загрузку файла с помощью Центра Интернета вещей. Он передает имя большого двоичного объекта в запросе и получает в ответ универсальный код ресурса (URI) SAS и идентификатор корреляции. URI SAS содержит маркер SAS для хранилища Azure, который предоставляет устройству разрешение на чтение и запись для запрошенного большого двоичного объекта в контейнере больших двоичных объектов. Дополнительные сведения см. в разделе Устройство: инициализация загрузки файла.
Устройство использует универсальный код ресурса (URI) SAS для безопасного вызова API-интерфейсов хранилища BLOB-объектов Azure для отправки файла в контейнер BLOB-объектов. Дополнительные сведения см. в разделе Устройство: отправка файла с помощью API хранилища Azure.
Когда загрузка файла завершена, устройство уведомляет центр Интернета вещей о состоянии завершения, используя идентификатор корреляции, полученный от Центра Интернета вещей при запуске загрузки. Дополнительные сведения см. в разделе Устройство: уведомление Центра Интернета вещей о завершенной загрузке файла.
Внутренние службы могут подписываться на уведомления о загрузке файлов в конечной точке уведомлений о загрузке файлов в центре Интернета вещей, обращенной к службе. Если вы включили эти уведомления в своем центре Интернета вещей, они доставляются на эту конечную точку всякий раз, когда устройство уведомляет центр о завершении загрузки файла. Службы могут использовать эти уведомления для запуска дальнейшей обработки данных большого двоичного объекта. Дополнительные сведения см. в разделе Сервис: уведомления о загрузке файлов.
Загрузка файлов полностью поддерживается пакетами SDK для устройств и служб Azure IoT. Дополнительные сведения см. в разделе Загрузка файлов с помощью SDK.
Квоты и ограничения на загрузку файлов
Центр Интернета вещей накладывает ограничения на количество загрузок файлов, которые он может инициировать за определенный период. Пороговое значение зависит от SKU и количества единиц вашего центра Интернета вещей. Кроме того, каждое устройство может одновременно загружать не более 10 активных файлов. Дополнительные сведения см. в разделе Регулирование и квоты.
Свяжите учетную запись хранения Azure с центром Интернета вещей
Чтобы использовать функции загрузки файлов, необходимо связать учетную запись хранения Azure и контейнер BLOB-объектов с центром Интернета вещей. Все загрузки файлов с устройств, зарегистрированных в вашем Центре Интернета вещей, будут отправляться в этот контейнер. Чтобы настроить учетную запись хранения и контейнер больших двоичных объектов в центре Интернета вещей, см. разделы Настройка отправки файлов с помощью портала Azure, Настройка отправки файлов с помощью Azure CLI или Настройка отправки файлов с помощью PowerShell. Вы также можете использовать API-интерфейсы управления Центра Интернета вещей для программной настройки загрузки файлов.
Если вы используете портал, вы можете создать учетную запись хранения и контейнер во время настройки. В противном случае, чтобы создать учетную запись хранения, см. раздел Создание учетной записи хранения в документации по хранилищу Azure. Если у вас есть учетная запись хранения, вы можете узнать, как создать контейнер BLOB-объектов, в кратких руководствах по хранилищу BLOB-объектов Azure. По умолчанию Azure IoT Hub использует проверку подлинности на основе ключей для подключения и авторизации в службе хранилища Azure. Вы также можете настроить управляемые удостоверения, назначаемые пользователем или системой, для аутентификации Центра Интернета вещей Azure с помощью службы хранилища Azure. Управляемые удостоверения безопасным образом предоставляют службам Azure автоматически управляемое удостоверение в Azure AD. Чтобы узнать, как настроить управляемые удостоверения, см. раздел Настройка отправки файлов с помощью управляемых удостоверений.
Загрузка файла регулируется настройками брандмауэра хранилища Azure. В зависимости от конфигурации проверки подлинности вам необходимо убедиться, что ваши устройства могут обмениваться данными с хранилищем Azure.
Существует несколько других параметров, которые управляют поведением загрузки файлов и уведомлениями о загрузке файлов. В следующих разделах перечислены все доступные настройки. В зависимости от того, используете ли вы портал Azure, Azure CLI, PowerShell или API управления для настройки отправки файлов, некоторые из этих параметров могут быть недоступны. Обязательно установите enableFileUploadNotifications Параметр , если вы хотите, чтобы уведомления отправлялись на ваши серверные службы после завершения загрузки файла.
Параметры хранилища и проверки подлинности в концентраторе Интернета вещей
Следующие параметры связывают учетную запись хранения и контейнер с вашим концентратором Интернета вещей и управляют тем, как ваш концентратор выполняет аутентификацию в хранилище Azure. Эти параметры не влияют на то, как устройства аутентифицируются в хранилище Azure. Устройства всегда проходят проверку подлинности с помощью маркера SAS, представленного в URI SAS, полученном из Центра Интернета вещей.
Собственность | Описание | Диапазон и значение по умолчанию |
---|---|---|
storageEndpoints.$default.authenticationType | Управляет аутентификацией Центра Интернета вещей в хранилище Azure. | Возможные значения: keyBased и identityBased. По умолчанию: на основе ключей. |
storageEndpoints.$default.connectionString | Строка подключения к учетной записи хранения Azure, используемая для отправки файлов. | По умолчанию: Пустая строка. |
storageEndpoints.$default.containerName | Имя контейнера для загрузки файлов. | По умолчанию: Пустая строка. |
storageEndpoints. $default.identity | Управляемое удостоверение, используемое для аутентификации на основе удостоверения. | Возможные значения: [система] для управляемого удостоверения, назначаемого системой, или идентификатор ресурса для управляемого удостоверения, назначаемого пользователем. Это значение не используется для проверки подлинности на основе ключа. По умолчанию: ноль. |
Настройки загрузки файлов
Следующие настройки управляют загрузкой файлов с устройства.
Имущество | Описание | Диапазон и значение по умолчанию |
---|---|---|
storageEndpoints.$default.ttlAsIso8601 | Значение TTL по умолчанию для SAS URI, созданное Центром Интернета вещей. | ISO_8601 интервал до 48 часов (минимум 1 минута). По умолчанию: 1 час. |
Настройки уведомлений о загрузке файлов
Следующие параметры управляют уведомлениями о загрузке файлов во внутренние службы.
Имущество | Описание | Диапазон и значение по умолчанию |
---|---|---|
enableFileUploadNotifications | Определяет, записываются ли уведомления о загрузке файлов в конечную точку уведомлений о файлах. | Бул. По умолчанию: Ложь. |
файлNotifications.ttlAsIso8601 | TTL по умолчанию для уведомлений о загрузке файлов. | ISO_8601 интервал до 48 часов (минимум 1 минута). По умолчанию: 1 час. |
fileNotifications.lockDuration | Длительность блокировки для очереди уведомлений о загрузке файлов. | от 5 до 300 секунд. По умолчанию: 60 секунд. |
файлNotifications.maxDeliveryCount | Максимальное количество доставок для очереди уведомлений о загрузке файлов. | От 1 до 100. По умолчанию: 100. |
Загрузка файлов с помощью SDK
Следующие практические руководства содержат полные пошаговые инструкции по отправке файлов с помощью устройств Azure IoT и пакетов SDK для служб. В них показано, как использовать портал Azure для связывания учетной записи хранения с центром Интернета вещей, и они содержат фрагменты кода или ссылки на примеры, которые помогут вам выполнить загрузку.
Руководство | Пример SDK устройства | Пример SDK службы |
---|---|---|
.NET | Да | Да |
Ява | Да | Да |
Node.js | Да | Да |
Питон | Да | Нет (не поддерживается) |
Примечание
SDK устройства C использует один вызов клиента устройства для выполнения загрузки файлов. Дополнительные сведения см. в статьях IoTHubDeviceClient_UploadToBlobAsync() и IoTHubDeviceClient_UploadMultipleBlocksToBlobAsync(). Эти функции выполняют все аспекты отправки файла за один вызов — инициируют отправку, отправляют файл в хранилище Azure и уведомляют Центр Интернета вещей о завершении. Это означает, что в дополнение к протоколу, который устройство использует для связи с Центром Интернета вещей, оно также должно иметь возможность обмениваться данными по HTTPS с хранилищем Azure, поскольку эти функции вызывают API-интерфейсы хранилища Azure.
Устройство: Инициализация загрузки файла
Устройство вызывает REST API SAS URI Create File Upload или эквивалентный API в одном из SDK устройства, чтобы инициировать загрузку файла.
Поддерживаемые протоколы : HTTPS
Конечная точка : {iot hub}.azure-devices.net/devices/{deviceId}/files
Метод : POST
{ "blobName":"myfile.txt" }
Собственность | Описание |
---|---|
имя_блоба | Имя большого двоичного объекта, для которого создается универсальный код ресурса (URI) SAS. |
Центр Интернета вещей отвечает идентификатором корреляции и элементами универсального кода ресурса (URI) SAS, которые устройство может использовать для аутентификации в хранилище Azure. На этот ответ распространяются ограничения регулирования и ограничения загрузки для каждого устройства целевого центра Интернета вещей.
{ "correlationId":"MjAyMTA3MzAwNjIxXzBiNjgwOGVkLWZjNzQtN...MzYzLWRlZmI4OWQxMzdmNF9teWZpbGUudHh0X3ZlcjIuMA==", "hostName":"contosostorageaccount.blob.core.windows.net", "containerName":"контейнер-загрузки-устройства", "blobName":"мое устройство/мой файл.txt", "sasToken":"?sv=2018-03-28&sr=b&sig=mBLiODhpKXBs0y9RVzwk1S...l1X9qAfDuyg%3D&se=2021-07-30T06%3A11%3A10Z&sp=rw" }
Собственность | Описание |
---|---|
идентификатор корреляции | Идентификатор устройства, который будет использоваться при отправке уведомления о завершении загрузки файла в Центр Интернета вещей. |
имя хоста | Имя узла учетной записи хранения Azure для учетной записи хранения, настроенной в центре Интернета вещей | .
имя контейнера | Имя контейнера больших двоичных объектов, настроенного в центре Интернета вещей. |
имя_блоба | Место, где будет храниться большой двоичный объект в контейнере. Имя имеет следующий формат: {идентификатор устройства, отправляющего запрос}/{blobName в запросе} |
састокен | Маркер SAS, который предоставляет доступ для чтения и записи к большому двоичному объекту с хранилищем Azure. Токен создается и подписывается Центром Интернета вещей. |
При получении ответа устройство:
Сохраняет идентификатор корреляции для включения в уведомление о завершении загрузки файла в Центр Интернета вещей после завершения загрузки.
Использует другие свойства для создания URI SAS для большого двоичного объекта, который используется для аутентификации в хранилище Azure. URI SAS содержит URI ресурса для запрошенного большого двоичного объекта и маркер SAS. Он принимает следующую форму:
https://{hostName}/{containerName}/{blobName}{sasToken}
(свойствоsasToken
в ответе содержит начальный символ ‘?’. ) Фигурные скобки не включены.Например, для значений, возвращаемых в примере выше, SAS URI имеет вид
https://contosostorageaccount.blob.core.windows.net/device-upload-container/mydevice/myfile.txt?sv=2018-03. -28&sr=b&sig=mBLiODhpKXBs0y9RVzwk1S...l1X9qAfDuyg%3D&se=2021-07-30T06%3A11%3A10Z&sp=rw
Дополнительные сведения об универсальном коде ресурса (URI) SAS и маркере SAS см. в разделе Создание службы SAS в документации по хранилищу Azure.
Устройство: загрузите файл с помощью API хранилища Azure
Устройство использует REST API хранилища BLOB-объектов Azure или эквивалентные API SDK хранилища Azure для отправки файла в большой двоичный объект в хранилище Azure.
Поддерживаемые протоколы : HTTPS
В следующем примере показан запрос на размещение большого двоичного объекта для создания или обновления небольшого блочного BLOB-объекта. Обратите внимание, что URI, используемый для этого запроса, — это URI SAS, возвращенный Центром Интернета вещей в предыдущем разделе. Заголовок x-ms-blob-type
указывает, что этот запрос относится к блочному BLOB-объекту. Если запрос выполнен успешно, хранилище Azure возвращает 201 Создан
.
PUT https://contosostorageaccount.blob.core.windows.net/device-upload-container/mydevice/myfile.txt?sv=2018-03-28&sr=b&sig=mBLiODhpKXBs0y9RVzwk1S...l1X9qAfDuyg%3D&se=2021-07 -30T06%3A11%3A10Z&sp=RW HTTP/1.1 Длина содержимого: 11 Content-Type: текстовый/обычный; кодировка = UTF-8 Хост: contosostorageaccount.blob.core.windows.net x-ms-blob-тип: BlockBlob Привет, мир
Работа с API хранилища Azure выходит за рамки этой статьи. В дополнение к API-интерфейсам REST хранилища BLOB-объектов Azure, указанным ранее в этом разделе, вы можете изучить следующую документацию, которая поможет вам приступить к работе:
Дополнительные сведения о работе с большими двоичными объектами в хранилище Azure см. в документации по хранилищу больших двоичных объектов Azure.
Сведения об использовании пакетов SDK клиента хранилища Azure для отправки больших двоичных объектов см. в справочнике по API хранилища BLOB-объектов Azure.
Устройство: уведомить центр Интернета вещей о завершенной загрузке файла
Устройство вызывает REST API состояния загрузки файла или эквивалентный API в одном из SDK устройства, когда оно завершает загрузку файла. Устройство должно обновлять статус отправки файла с помощью Центра Интернета вещей независимо от того, успешно или нет выполняется загрузка.
Поддерживаемые протоколы : HTTPS
Конечная точка : {iot hub}.azure-devices.net/devices/{deviceId}/files/notifications
Метод : POST
{ "correlationId": "MjAyMTA3MzAwNjIxXzBiNjgwOGVkLWZjNzQtN...MzYzLWRlZmI4OWQxMzdmNF9teWZpbGUudHh0X3ZlcjIuMA==", "isSuccess": правда, "Код статуса": 200, "statusDescription": "Файл успешно загружен" }
Собственность | Описание |
---|---|
идентификатор корреляции | Идентификатор корреляции, полученный в исходном запросе SAS URI. |
успех | Логическое значение, указывающее, была ли загрузка файла успешной. |
код состояния | Целое число, представляющее код состояния загрузки файла. Обычно три цифры; например, 200 или 201. |
статус Описание | Описание статуса загрузки файла. |
Когда он получает уведомление о завершении загрузки файла с устройства, Центр Интернета вещей:
Инициирует уведомление о загрузке файла во внутренние службы, если настроены уведомления о загрузке файла.
Освобождает ресурсы, связанные с загрузкой файла. Если Центр Интернета вещей не получит уведомление, он будет поддерживать ресурсы до тех пор, пока не истечет срок жизни SAS URI (TTL), связанный с отправкой.
Служба: уведомления о загрузке файлов
Если в вашем центре Интернета вещей включены уведомления о загрузке файлов, он генерирует сообщение уведомления для серверных служб при получении уведомления от устройства о завершении загрузки файла. Центр Интернета вещей доставляет эти уведомления о загрузке файлов через конечную точку, обращенную к службе. Семантика получения уведомлений о загрузке файлов такая же, как и для сообщений, передаваемых из облака на устройство, и имеет такой же жизненный цикл сообщения. Сервисные SDK предоставляют API для обработки уведомлений о загрузке файлов.
Поддерживаемые протоколы AMQP, AMQP-WS
Конечная точка : {iot hub}.azure-devices.net/messages/servicebound/fileuploadnotifications
Метод GET
Каждое сообщение, полученное из конечной точки уведомления о загрузке файла, представляет собой запись JSON :
{ "deviceId":"мое устройство", "blobUri":"https://contosostorageaccount.blob.core.windows.net/device-upload-container/mydevice/myfile.txt", "blobName":"мое устройство/мой файл.txt", "lastUpdatedTime":"2021-07-31T00:26:50+00:00", "blobSizeInBytes":11, "enqueuedTimeUtc":"2021-07-31T00:26:51. 5134008Z" }
Имущество | Описание |
---|---|
enqueuedTimeUtc | Отметка времени, указывающая, когда было создано уведомление. |
идентификатор устройства | Идентификатор устройства, с которого был загружен файл. |
блобУри | URI загруженного файла. |
имя_блоба | Имя загружаемого файла. Имя имеет следующий формат: {идентификатор устройства}/{имя большого двоичного объекта} |
время последнего обновления | Отметка времени, указывающая время последнего обновления файла. |
blobSizeInBytes | Целое число, представляющее размер загруженного файла в байтах. |
Службы могут использовать уведомления для управления загрузками. Например, они могут инициировать собственную обработку данных большого двоичного объекта, инициировать обработку данных большого двоичного объекта с помощью других служб Azure или зарегистрировать уведомление о загрузке файла для последующего просмотра.
Следующие шаги
Инструкции по загрузке файлов
Как настроить загрузку файлов в Центре Интернета вещей
Как настроить управляемые удостоверения в Центре Интернета вещей
Документация по хранилищу BLOB-объектов Azure
В пакетах SDK для устройств и служб Azure IoT перечислены различные языковые пакеты SDK, которые можно использовать при разработке приложений для устройств и служб, которые взаимодействуют с Центром Интернета вещей.
Руководство по загрузке файлов | Полоса Документация
Когда вы загружаете файл в Stripe с помощью API, возвращается токен файла и другая информация о файле. Затем токен можно использовать в других вызовах API. Это руководство содержит подробное пошаговое руководство по этому процессу.
Загрузка файла
Чтобы загрузить файл, отправьте запрос multipart/form-data
на номер https://files. stripe.com/v1/files . Обратите внимание, что поддомен files.stripe.com отличается от большинства конечных точек API Stripe. В запросе должно быть указано цель
и файл
. В следующем примере загружается файл, расположенный по адресу /path/to/a/file.jpg в вашей локальной файловой системе с целью спор_доказательства
:
curl https://files.stripe.com/v1/files \ -u
sk_test_Y17KokhC3SRYCQTLYiU5ZCD2
: \ -F "файл"="@/путь/к/a/файлу.jpg" \ -F "цель"="dispute_evidence"
В следующем примере файл загружается с помощью нашего Android SDK с целью спор_доказательство
:
класс CheckoutActivity: AppCompatActivity() { приватная полоса val: Stripe от lazy { Полоса (это,
"pk_test_f3duw0VsAEM2TJFMtWQ90QAT"
) } приватное развлечение uploadFile(file: File) { полоса. создать файл( StripeFileParams( файл, StripeFilePurpose.DisputeEvidence ), callback = объект: ApiResultCallback{ переопределить удовольствие при успехе (результат: StripeFile) { // Загрузка файла прошла успешно } переопределить удовольствие onError (e: Exception) { // Загрузка файла не удалась } } ) } }
Существует несколько допустимых значений назначения, каждое из которых имеет требования к формату и размеру файла.
Purpose | Description | Supported mimetypes | Max size | Expiry | Downloadable |
---|---|---|---|---|---|
account_requirement | Additional documentation requirements that can be requested for an account. | PDF JPEG PNG | 16MB | НИКОГДА | false |
business_icon | Значок бизнеса. | JPEG PNG GIF | 512 КБ | НИКОГДА | правда |
business_logo | 6 Бизнес логотип 90. | JPEG PNG GIF | 512 КБ | НИКОГДА | true |
customer_signature | 6 90 изображение подписи клиента. | JPEG PNG | 4MB | НИКОГДА | правда |
спор_доказательства | Доказательства для представления с ответом на спор. | PDF JPEG PNG | 5MB | 9 месяцев | true |
identity_document | A 900 | PDF JPEG PNG | 16MB | НИКОГДА | false |
pci_document | Опросник PCI для самооценки. | PDF | 16MB | НИКОГДА | true |
tax_document_user_upload | Налоговый документ, загруженный пользователем. | PDF CSV JPEG PNG XLSX DOCX | 16MB | НИКОГДА | true |
Additional_verification | Дополнительная проверка для пользовательских учетных записей. | PDF JPEG PNG | 16MB | НИКОГДА | false |
terminal_reader_splashscreen | 6 отображается на терминале. | PNG JPEG GIF | 4.194304MB | 1 год | true |
MIME-тип файла, который вы хотите загрузить, должен соответствовать формату загружаемого файла.
File format | MIME type |
---|---|
APK | application/vnd.android.package-archive |
CSV | text/csv |
DOCX | application/vnd. openxmlformats-officedocument.wordprocessingml.document |
GIF | изображение/gif |
JPEG | image/jpeg |
JSON | application/json |
application/pdf | |
PNG | image/png |
TIFF | Изображение/TIFF |
TSV | Текст/SEPARED-VALUES |
TXPARTED | 93 9006 3 |
XLSX | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
XML | application/xml |
ZIP | application/zip |
Успешный запрос возвращает файловый объект.
Получение ресурса API файла
Чтобы получить ресурс API для файла, выполните запрос GET к /v1/files конечная точка субдомена files.stripe.com , предоставляющая идентификатор загрузки файла:
curl https://files.stripe.com/v1/files/
{{FILE_ID}}
\ -usk_test_Y17KokhC3SRYCQTLYiU5ZCD2
Загрузка содержимого файла
Если цель файла позволяет загружать содержимое файла, то файл включает ненулевое поле url
, указывающее, как получить доступ к содержимому. Для этого URL-адреса требуется аутентификация с помощью ваших ключей Stripe API.
завиток https://files.stripe.com/v1/files/
{{FILE_ID}}
-usk_test_Y17KokhC3SRYCQTLYiU5ZCD2
Если вам нужен неавторизованный доступ к файлу, цель которого позволяет загрузку, вы можете создать анонимные ссылки для скачивания, создав файл_ссылка.
завиток https://api.stripe.com/v1/file_links \ -u
sk_test_Y17KokhC3SRYCQTLYiU5ZCD2
-d файл={{FILE_ID}}
Ресурс file_link имеет поле url
, которое разрешает неавторизованный доступ к содержимому файла.
Использование файла
После загрузки файла идентификатор загрузки файла можно использовать в других запросах API. Например, чтобы прикрепить загруженный файл к конкретному диспуту в качестве доказательства:
curl https://api. stripe.com/v1/disputes/
{{DISPUTE_ID}}
-usk_test_Y17KokhC3SRYCQTLYiU5ZCD2
-d "доказательство [квитанция]" ={{FILE_ID}}
Обратите внимание, что вы можете использовать загруженный файл только в одном запросе API.
Обработка ошибок загрузки
Когда вы используете File API для загрузки PDF-документа, мы запускаем его через ряд проверок, чтобы убедиться, что он правильно отформатирован и соответствует спецификациям PDF. Мы возвращаем ошибку для загрузок, которые не проходят ни одну из наших проверок.
Попробуйте выполнить следующие действия, чтобы исправить обнаруженные нами ошибки:
- Удалите аннотации или дополнительные медиафайлы, добавленные вами в документ.
- Если вы не можете удалить свои аннотации или мультимедиа или если вы объединили несколько PDF-файлов в один, попробуйте использовать функцию «Печать в PDF» на вашем компьютере, чтобы создать новый документ.
- Печать в PDF с помощью macOS
- Печать в PDF с помощью Adobe Acrobat
Загрузка файлов | Документация Django
Когда Django обрабатывает загрузку файла, данные файла помещаются в request. FILES
(подробнее о объект запроса
см. документацию по объектам запроса и ответа). В этом документе объясняется, как файлы хранятся на диске
и в памяти, и как настроить поведение по умолчанию.
Предупреждение
Если вы принимаете загруженный контент из ненадежные пользователи! См. раздел руководства по безопасности на Загруженный пользователем контент для получения подробной информации о смягчении последствий.
Базовая загрузка файлов
Рассмотрим форму, содержащую FileField
:
forms.py
из форм импорта django класс UploadFileForm(forms.Form): название = формы.CharField(max_length=50) файл = формы.FileField()
Представление, обрабатывающее эту форму, получит данные файла в request.FILES
, который является словарем
содержащий ключ для каждого FileField
(или ImageField
или другой FileField
подкласс) в форме. Таким образом, данные из приведенной выше формы будут
быть доступным как request.FILES['file']
.
Обратите внимание, что request.FILES
будет только
содержать данные, если метод запроса был POST
, хотя бы одно поле файла было
фактически отправлено, а , отправивший запрос, имеет атрибут
enctype="multipart/form-data"
. В противном случае request.FILES
будет пустым.
В большинстве случаев вы будете передавать данные файла из запроса
в форму как
описано в разделе Привязка загруженных файлов к форме. Это будет выглядеть примерно так:
views.py
from django.http import HttpResponseRedirect из django.shortcuts импортировать рендеринг из .forms импортировать UploadFileForm # Воображаемая функция для обработки загруженного файла. откуда-то импортировать handle_uploaded_file def upload_file (запрос): если request. method == 'POST': form = UploadFileForm(запрос.POST, запрос.ФАЙЛЫ) если form.is_valid(): handle_uploaded_file(запрос.ФАЙЛЫ['файл']) вернуть HttpResponseRedirect('/success/url/') еще: форма = ЗагрузитьФайлФорму() вернуть рендеринг (запрос, 'upload.html', {'форма': форма})
Обратите внимание, что мы должны передать запрос . ФАЙЛЫ
в конструктор формы; именно так данные файла связываются с формой.
Вот распространенный способ обработки загруженного файла:
def handle_uploaded_file(f): с open('some/file/name.txt', 'wb+') в качестве пункта назначения: для чанка в f.chunks(): назначение.запись(чанк)
Перебор UploadedFile.chunks()
вместо использования read()
гарантирует, что
большие файлы не перегружают память вашей системы.
Есть несколько других методов и атрибутов, доступных в UploadedFile
объекты; см. UploadedFile
для полной справки.
Обработка загруженных файлов с помощью модели
Если вы сохраняете файл на модели
с FileField
, используя ModelForm
значительно облегчает этот процесс. Файловый объект будет сохранен в местоположении
указывается аргументом upload_to
соответствующий FileField
при звонке form.save()
:
из django.http import HttpResponseRedirect из django.shortcuts импортировать рендеринг из .forms импортировать ModelFormWithFileField def upload_file (запрос): если request.method == 'POST': form = ModelFormWithFileField (запрос.POST, запрос.ФАЙЛЫ) если form.is_valid(): # файл сохранен форма.сохранить() вернуть HttpResponseRedirect('/success/url/') еще: форма = ModelFormWithFileField() вернуть рендеринг (запрос, 'upload.html', {'форма': форма})
Если вы конструируете объект вручную, вы можете назначить файловый объект из request. FILES
в поле файла в
модель:
из django.http import HttpResponseRedirect из django.shortcuts импортировать рендеринг из .forms импортировать UploadFileForm из .models импортировать ModelWithFileField def upload_file (запрос): если request.method == 'POST': form = UploadFileForm(запрос.POST, запрос.ФАЙЛЫ) если form.is_valid(): instance = ModelWithFileField(file_field=request.FILES['file']) экземпляр.сохранить() вернуть HttpResponseRedirect('/success/url/') еще: форма = ЗагрузитьФайлФорму() вернуть рендеринг (запрос, 'upload.html', {'форма': форма})
Если вы создаете объект вручную вне запроса, вы можете назначить File
подобный объект для FileField
:
из django.core.management.base import BaseCommand из django.core.files.base импортировать ContentFile класс MyCommand (BaseCommand): Деф дескриптор(я, *аргументы, **опции): content_file = ContentFile(b'Привет, мир!', name='hello-world. txt') экземпляр = ModelWithFileField (file_field = content_file) экземпляр.сохранить()
Загрузка нескольких файлов
Если вы хотите загрузить несколько файлов с помощью одного поля формы, установите кратное
HTML-атрибут виджета поля:
forms.py
из форм импорта django класс FileFieldForm(forms.Form): file_field = forms.FileField (виджет = forms.ClearableFileInput (attrs = {'несколько': True}))
Затем переопределите метод post
вашего Подкласс FormView
для обработки нескольких файлов
загрузок:
views.py
из django.views.generic.edit import FormView из .forms импортировать FileFieldForm класс FileFieldFormView (FormView): form_class = ФормаФайловогоПоля template_name = 'upload.html' # Замените своим шаблоном. success_url = '...' # Замените своим URL-адресом или reverse(). def post(self, request, *args, **kwargs): form_class = self.get_form_class() форма = self.get_form(form_class) файлы = запрос.ФАЙЛЫ.getlist('file_field') если form.is_valid(): для f в файлах: ... # Сделайте что-нибудь с каждым файлом. вернуть self.form_valid (форма) еще: вернуть self.form_invalid (форма)
Обработчики загрузки
Когда пользователь загружает файл, Django передает данные файла в загрузку обработчик — небольшой класс, который обрабатывает данные файла по мере его загрузки. Загрузить
обработчики изначально определены в настройке FILE_UPLOAD_HANDLERS
,
который по умолчанию:
["django.core.files.uploadhandler.MemoryFileUploadHandler", "django.core.files.uploadhandler.TemporaryFileUploadHandler"]
Вместе MemoryFileUploadHandler
и TemporaryFileUploadHandler
обеспечивает загрузку файла Django по умолчанию
поведение при чтении небольших файлов в память и больших на диск.
Вы можете написать собственные обработчики, которые настраивают то, как Django обрабатывает файлы. Ты можно, например, использовать настраиваемые обработчики для обеспечения квот на уровне пользователя, сжатия данные на лету, отображать индикаторы выполнения и даже отправлять данные в другое хранилище местоположение напрямую, не сохраняя его локально. См. Написание пользовательских обработчиков загрузки. для получения подробной информации о том, как вы можете настроить или полностью заменить поведение загрузки.
Место хранения загруженных данных
Перед сохранением загруженных файлов данные необходимо где-то сохранить.
По умолчанию, если загруженный файл меньше 2,5 мегабайт, Django сохранит все содержимое загрузить в память. Это означает, что сохранение файла включает только чтение из памяти и запись на диск и, следовательно, очень быстро.
Однако, если загруженный файл слишком велик, Django запишет загруженный файл
во временный файл, хранящийся во временном каталоге вашей системы. На Unix-подобном
платформы, это означает, что вы можете ожидать, что Django сгенерирует файл с именем something
нравится /tmp/tmpzfp6I6.upload
. Если загрузка достаточно большая, вы можете посмотреть это
файл увеличивается в размере по мере того, как Django передает данные на диск.
Эти особенности – 2,5 мегабайта; /tmp
; и т. д. – это «разумные невыполнения обязательств»
которые можно настроить, как описано в следующем разделе.
Изменение поведения обработчика загрузки
Есть несколько настроек, которые управляют поведением Django при загрузке файлов. Видеть Настройки загрузки файлов для получения подробной информации.
Изменение обработчиков загрузки на лету
Иногда определенные представления требуют другого режима загрузки. В этих случаях,
вы можете переопределить обработчики загрузки для каждого запроса, изменив request.upload_handlers
. По умолчанию этот список будет содержать загрузку
обработчики, заданные FILE_UPLOAD_HANDLERS
, но вы можете изменить список
как и любой другой список.
Например, предположим, что вы написали ProgressBarUploadHandler
, который
предоставляет обратную связь о ходе загрузки в какой-либо виджет AJAX. Вы бы добавили это
обработчик к вашим обработчикам загрузки следующим образом:
request.upload_handlers.insert(0, ProgressBarUploadHandler(запрос))
Возможно, в этом случае вы захотите использовать list.insert()
(вместо append()
), потому что обработчик индикатора выполнения должен был бы запустить до любого
другие обработчики. Помните, что обработчики загрузки обрабатываются по порядку.
Если вы хотите полностью заменить обработчики загрузки, вы можете назначить новый список:
request.upload_handlers = [ProgressBarUploadHandler (запрос)]
Примечание
Вы можете изменять только обработчики загрузки до доступа request.POST
или request.FILES
— не имеет смысла
изменить обработчики загрузки после того, как обработка загрузки уже
начал. Если вы попытаетесь изменить request.upload_handlers
после
чтение из request.POST
или request.FILES
Django будет
скиньте ошибку.
Таким образом, вы всегда должны изменять обработчики загрузки как можно раньше в своем представлении. возможный.
Кроме того, request.POST
доступен для CsrfViewMiddleware
, который включен
дефолт. Это означает, что вам нужно будет использовать csrf_exempt()
в вашем представлении, чтобы вы могли
чтобы изменить обработчики загрузки. Затем вам нужно будет использовать csrf_protect()
на функцию, которая
фактически обрабатывает запрос. Обратите внимание, что это означает, что обработчики могут
начать получать загрузку файла до того, как будут выполнены проверки CSRF.
Пример кода:
из django.views.decorators.csrf import csrf_exempt, csrf_protect @csrf_exempt def upload_file_view (запрос): request.upload_handlers.insert(0, ProgressBarUploadHandler(запрос)) вернуть _upload_file_view (запрос) @csrf_protect def _upload_file_view (запрос): .