У меня есть объекты в корзине S3, и я не могу контролировать имена ключей. Некоторые из этих клавиш имеют специальные символы, и AWS SDK их не любит.
Например, один ключ объекта: folder/Johnson, Scott to JKL-Discovery.pdf
, на первый взгляд, он может выглядеть хорошо, но если я закодирую его URL: folder%2F%E2%80%8DJohnson%2C+Scott+to+JKL-Discovery.pdf
, вы можете увидеть это после folder/
(или folder%2F
при кодировании) существует случайная последовательность символов %E2%80%8D
перед Johnson
.
Непонятно, откуда берутся эти символы, однако мне нужно уметь справиться с этим вариантом использования. Когда я пытаюсь сделать копию этого объекта, используя Node.js AWS SDK,
const copyParams = {
Bucket,
CopySource,
Key : `folder/Johnson, Scott to JKL-Discovery.pdf`
};
let metadata = await s3.copyObject(copyParams).promise();
Не удается и не удается найти объект, если я encodeURI()
ключ, это также не удается ,
Как я могу справиться с этим?
НЕ ПРЕДЛАГАЙТЕ, ЧТО Я ИЗМЕНИЛА РАЗРЕШЕННЫЕ СИМВОЛЫ В КЛЮЧЕВОЕ ИМЯ. У меня нет контроля над этим