Консоль S3 должна иметь возможность удалить ее независимо от того, какие символы она содержит или насколько она повреждена (если мы говорим об одном и том же). У вас достаточно разрешений?
Когда вы делаете это другими способами, сначала вам нужно выяснить, действительно ли "% 0A" является частью имени или является символом LF в кодировке URL ("\ n"). Имейте в виду, что вы можете не видеть других непечатаемых символов. Лучший способ определить это - открыть его в консоли Amazon, выбрать S3 в меню «Сервис», найти свой Bucket и щелкнуть файл, отметить ссылку на объект.
Если «% 0A» является частью имени, вы увидите имя объекта как «foo% 0A», но в ссылке оно будет выглядеть как «foo% 250A». В этом случае s3 rm s3://BUCKET/foo%0A
должен сделать свое дело.
Если «% 0A» обозначает символ, закодированный в URL «\ n», то вы должны видеть имя объекта (чуть выше вкладок) как просто «foo», но «foo% 0A» будет отображаться как имя объекта в URL. В этом случае вам нужно вставить новую строку в ключ при вводе команды s3 rm
. Это зависит от вашей операционной системы. Например. в Linux / Unix вы введете его так:
aws-cli s3 rm 's3://BUCKET/foo
'
Обратите внимание на кавычки, и что заключительная кавычка находится в начале новой строки. Это сделает новую строку частью значения, переданного в качестве параметра командной строки.
Также обратите внимание, что aws-cli может быть вызван просто aws в некоторой системе, но, учитывая, что вы предоставили команду s3 rm в качестве примера, я предполагаю, что вы уже знаете, что это такое в вашей системе. А если вы используете PowerShell в Windows, используйте кавычки вместо кавычек.
Теперь, проверьте Ссылку объекта и посмотрите, какие еще есть персонажи. Глядя на ваши примеры и проблемы, о которых вы сообщаете, я подозреваю, что в именах ваших файлов их больше одного. Важным моментом здесь является то, что имя вашего объекта может содержать больше непечатаемых символов, и вы не увидите его в консоли S3, но Link будет включать их все в закодированной форме URL. Таким образом, вы можете извлечь точное точное имя из ссылки. Обратите внимание, что как aws-cli, так и программный интерфейс, который вы связали, принимают настоящее имя, а не закодированное в URL. Поэтому, если вы используете aws-cli, вам нужно будет вставить все непечатаемые символы в параметр командной строки. И если вы используете программный интерфейс, вам нужно вставить их в строку ключа, которую вы предоставляете для вызова (например, поставив «\ n» вместо новой строки). Хотя я считаю эту часть довольно очевидной. И верьте, что вы будете знать, что делать, когда увидите фактическое имя файла со всеми непечатными файлами.