Коммерческое использование Служб
Если вы используете наши Службы от имени своей компании, это означает, что компания принимает данные Условия. Она обязуется защищать компанию Google, ее дочерние структуры, руководство, агентов и сотрудников от любых судебных исков, процессов и разбирательств, связанных с использованием вами Служб или нарушением вами данных Условий, а также от любой ответственности, в том числе финансовой, в отношении исков, ущерба, повреждения, процессов, разбирательств, судебных издержек и гонораров адвокатов.
max_allowed_packet = 16M
key_buffer_size = 16M
max_connections = 64
#region License
// Разработано: Коротенко Владимиром Николаевичем (Vladimir N. Korotenko)
// email: koroten@ya.ru
// skype:vladimir-korotenko
// https://vkorotenko.ru
// Создано: 19.08.2019 20:44
#endregion
using HeIsBad.Code;
using HeIsBad.Models;
using Microsoft.AspNetCore.Mvc;
using System.Linq;
namespace HeIsBad.Controllers
{
/// <summary>
/// Адресный контроллер. Занимается всеми вопросами связанными с адресами, регионами и прочим.
/// </summary>
[Route("api/address")]
[ApiController]
public class AddressController : Controller
{
private static Country[] _countryes = new Country[]
{
new Country{Id = 643,
Alpha2 = "RU",
Alpha3 = "RUS",
Name = "Russia"},
};
private Region[] _regions = RegionsSinglton.Instance.Items;
private City[] _cityes = CityesSinglton.Instance.Items;
/// <summary>
/// Список стран в системе.
/// </summary>
/// <returns></returns>
[HttpGet]
[ResponseCache(Location = ResponseCacheLocation.Any, Duration = 86000)]
public IActionResult Get()
{
return Ok(_countryes);
}
/// <summary>
///
/// </summary>
/// <param name="country"></param>
/// <returns></returns>
[HttpGet("{country}")]
[ResponseCache(Location = ResponseCacheLocation.Any, Duration = 86000)]
public ActionResult<Country> Get(string country)
{
var res = _countryes.FirstOrDefault(x => x.Alpha2 == country.ToUpper());
if (res == null)
return NotFound(new { error = "Not found country" });
return res;
}
/// <summary>
/// Список регионов для страны.
/// </summary>
/// <param name="country"></param>
/// <returns></returns>
[HttpGet("{country}/regions")]
[ResponseCache(Location = ResponseCacheLocation.Any, Duration = 86000)]
public ActionResult GetRegions(string country)
{
var res = _countryes.FirstOrDefault(x => x.Alpha2 == country.ToUpper());
if (res == null)
return NotFound(new { error = "Not found country" });
if (res.Alpha2 == "RU")
return Ok(_regions);
return NoContent();
}
/// <summary>
/// Список городов для страны. Только Россия. Первым идет спецобьект "Вся Россия", потом Москва и Санк-Петербург, дальше сортировка по коду.
/// </summary>
/// <param name="country">Код страны, ru</param>
/// <param name="query">Поисковая фраза, по умолчанию все</param>
/// <param name="limit">Лимит для запроса</param>
/// <returns></returns>
[HttpGet("{country}/cityes")]
[ResponseCache(Location = ResponseCacheLocation.Any, Duration = 86000)]
public ActionResult GetCityes(string country, [FromQuery]string query = "", [FromQuery]int limit = 10)
{
var res = _countryes.FirstOrDefault(x => x.Alpha2 == country.ToUpper());
if (res == null)
return NotFound(new { error = "Not found country" });
if (res.Alpha2 == "RU")
{
return Ok(GetFilteredCityList(query, limit));
}
return NoContent();
}
/// <summary>
/// Отдает лимитированное количество городов.
/// </summary>
/// <param name="query">Если строка не пустая то применяется фильтр</param>
/// <param name="limit"></param>
/// <returns></returns>
private City[] GetFilteredCityList(string query, int limit)
{
if (string.IsNullOrEmpty(query))
return _cityes.Take(limit).ToArray();
query = query.ToLower();
return _cityes.Where(x => x.Name.ToLower().Contains(query) || x.Slug.ToLower().Contains(query))
.Take(limit)
.ToArray();
}
}
}
#region License
// Разработано: Коротенко Владимиром Николаевичем (Vladimir N. Korotenko)
// email: koroten@ya.ru
// skype:vladimir-korotenko
// https://vkorotenko.ru
// Создано: 19.08.2019 14:38
#endregion
using Newtonsoft.Json;
using System;
namespace HeIsBad.Models
{
/// <summary>
/// Город
/// </summary>
public class City
{
/// <summary>
/// Идентификатор
/// </summary>
public int Id { get; set; }
/// <summary>
/// Регион к которому принадлежит город
/// </summary>
public int RegionId { get; set; }
/// <summary>
/// Имя города
/// </summary>
public string Name { get; set; }
/// <summary>
/// Longitude
/// </summary>
public long Lon { get; set; }
/// <summary>
/// Lattitude
/// </summary>
public long Lat { get; set; }
/// <summary>
/// Название для ЧПУ
/// </summary>
public string Slug { get; set; }
/// <summary>
/// Префикс образования, например район или область
/// </summary>
public string Prefix { get; set; }
/// <summary>
/// Идентификатор
/// </summary>
[JsonIgnore]
public Guid Guid { get; set; }
/// <summary>
/// Вышестоящий обьект, используется для вывода иерархии
/// </summary>
public string Parent { get; set; }
}
}
ny-one interested in some numbers here are my results from running some benchmarks on my local network. SMB 2.1 performance is about 112 MB/s
Machine: Intel(R) Core(TM)2 Quad CPU Q8400 @ 2.66GHz/8GB ram/Gigabit Local Network
FTP Mode MB/s CPU Usage/APP Encrypted
-------------------------------------------------------------
FTP Transfer rate: 120 40.9 proftpd No
FTPS (SSL) Transfer Rate: 55 99.8% proftpd Yes
SFTP Transfer Rate: 30 100% sshd Yes
Putty SSH Tunnel, (Raw) FTP: 32 100% sshd Yes
вот на нем собственно и стоит смотреть логи.
Вам честно доставляются письма с отлупами.
В заголовках письма кстати есть причины отказа в доставке.
Поэтому смотрите и настраивайте. Сейчас все провайдеры беспокоятся о вашей безопасности и почту так просто не отправишь.