Как скопировать объект S3 со специальным символом в ключе - PullRequest
1 голос
/ 06 марта 2020

У меня есть объекты в корзине 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() ключ, это также не удается ,

Как я могу справиться с этим?

НЕ ПРЕДЛАГАЙТЕ, ЧТО Я ИЗМЕНИЛА РАЗРЕШЕННЫЕ СИМВОЛЫ В КЛЮЧЕВОЕ ИМЯ. У меня нет контроля над этим

...