S3 может иметь подкаталоги. Просто поместите "/" в ключевое имя, и можно получить доступ к файлам, как будто они были в отдельных каталогах. Я использую это, чтобы хранить пользовательские файлы в отдельных папках на основе их идентификатора пользователя в S3.
, Например: "mybucket/users/1234/somefile.jpg". Это не точно то же как каталог в файловой системе, но S3 API имеет некоторые функции, которые позволяют ему работать почти то же. Я могу попросить, чтобы он перечислил все файлы, которые начинаются "с пользователей/1234 /" и это покажет мне все файлы в том "каталоге".
Для этого лучше использовать Библиотеку сценариев Microsoft Anti-Cross Site . Они предоставляют метод JavaScriptEncode, который делает то, что вы хотите:
Microsoft.Security.Application.AntiXss.JavaScriptEncode("My 'Quotes' and ""more"".", False)
Я не уверен, в каком контексте вы используете эту строку, но \ '
может быть тем, что вы ищете. Обратная косая черта является escape-символом и позволяет вам использовать определенные символы , которые иначе не могут присутствовать в строковом литерале. Вот как должен выглядеть выходной код JavaScript:
alert('It\'s amazing');
Конечно, вы можете использовать alert («Это потрясающе»);
в данном конкретном случае.
В любом случае, если вы создаете код JavaScript :
html = html.Replace("'", "\\'");
С другой стороны, помимо апострофов есть и другие символы, которые требуют некоторой обработки. Использование библиотеки сценариев Microsoft Anti-Cross Site Scripting Library позволит получить их все сразу.
Символы, которые необходимо экранировать в строковом значении, - это обратная косая черта и символ, используемый в качестве разделителя строки.
Если апострофы (') используются в качестве разделителя строки:
html = html.Replace(@"\", @"\\").Replace("'", @"\'");
Если кавычки (") используются как разделитель строк:
html = html.Replace(@"\", @"\\").Replace(@"""", @"\""");
Если вы не знаете, какой разделитель используется, или если он может измениться в будущем, вы можете просто избежать обоих:
html = html.Replace(@"\", @"\\").Replace("'", @"\'").Replace(@"""", @"\""");