Я думаю, что у вас есть та же проблема, что и в , этот вопрос .
@Relequestual прав в том, что вам нужно ключевое слово properties
вокруг вашей выноски SDK
. Но для того, что вы хотите сделать, вам нужно реорганизоваться.
Подсхемы работают только на своем уровне в данном случае, а не в корне.
Рассмотрим эту схему для простого экземпляра объекта JSON, содержащего свойство one
и two
:
{
"properties": {
"one": {
"enum": ["yes", "no", "maybe"]
},
"two": {
"if": {
"properties": {
"one": {"const": "yes"}
}
},
"then": {
... // do some assertions on the two property here
},
"else": {
...
}
}
}
}
Ключевое слово if
в свойстве two
может учитывать только часть экземпляр в свойстве two
(то есть значение two
). Он не смотрит на корень экземпляра, поэтому он вообще не может видеть свойство one
.
Чтобы подсхема в подсхеме свойства two
могла видеть свойство one
в экземпляре, необходимо переместить if
за пределы ключевого слова properties
.
{
"if": {
"properties": {
"one": {"const" : "yes"}
}
},
"then": {
... // do some assertions on the two property here
},
"else": {
... // assert two here, or have another if/then/else structure to test the one property some more
}
}
Для двух возможных значений one
это довольно хорошо. Даже три возможных значения неплохо. Однако с увеличением возможных значений one
увеличивается и вложенность if
с, что может сделать вашу схему ужасной для чтения (и, возможно, сделать проверку медленнее).
Вместо использования конструкции if
/ then
/ else
я предлагаю использовать anyOf
или oneOf
, где каждая подсхема представляет действительное состояние для экземпляра, учитывая различные значения one
.
{
"oneOf": [
{
"properties": {
"one": {"const": "yes"},
"two": ... // do some assertions on the two property here
}
},
{
"properties": {
"one": {"const": "no"},
"two": ... // do some assertions on the two property here
}
},
{
"properties": {
"one": {"const": "maybe"},
"two": ... // do some assertions on the two property here
}
}
]
}
На мой взгляд, это намного чище.
Надеемся, что это объяснение поможет вам реконструировать вашу схему, чтобы позволить другим экземплярам пройти.
Да. Существуют (насколько я могу помнить), приблизительно три параметра конфигурации, которые будут влиять на ограничения размера загрузки:
upload_max_filesize
, который устанавливает верхний предел для размера загруженных файловpost_max_size
, который ограничивает общий размер отправленных данных, включая данные файлаmax_input_time
, который ограничивает отрезок времени, сценарию позволяют обработать входные данные, включая отправленные значенияupload_max_filesize
предел на каждый отдельный файл; однако, max_post_size
верхний предел всего запроса, который включает все загруженные файлы.
Различным средам хостинга установят эти значения по-другому, которые могут влиять на Ваши способности после развертывания.
Пределы загрузки устанавливаются через php ini. Можно попробовать, получают их как так:
$post_max_size = ini_get('post_max_size');
$upload_max_filesize = ini_get('upload_max_filesize');
Это - установка в php.ini. Можно посмотреть в выводе php информации для маркированного "upload_max_filesize" поля. Для получения php информационной страницы создайте php файл со следующим кодом:
<?php phpinfo(); ?>
Это сообщение по php.net дает Вам пример кода для получения той информации, и остальная часть страницы является ценным кладом php параметров конфигурации.
Существует набор настроек PHP, ограничивающих процесс загрузки:
Я предложил бы читать эту страницу: http://www.radinks.com/upload/config.php
В то время как это верно, что многие из них не ограничивают размер загрузки, они действительно помещают ограничение на процесс загрузки - например, если предел памяти будет слишком низким, то у Вас будут проблемы при загрузке больших файлов, которые должны остаться в памяти в течение небольшого промежутка времени.
директива php.ini "post_max_size" должна ограничить, сколько данных можно отправить в единственном POST. если Вы отправляете 15 изображений в одном сообщении, я вполне уверен, который все еще считают одним POST. Таким образом, могло бы быть хорошо проверить это значение перед вводом в эксплуатацию.
Это было бы необычно, но конечно, согласовало бы с любой хостинговой компанией, которую Вы выбираете. Если бы был предел, то это, конечно, было бы выше, чем 30 МБ.