Я использую aws -sdk на узле для загрузки документов на S3. Первым шагом является создание предварительно назначенного URL, и для этого мне нужно инициализировать мое ведро. Итак, я делаю
AWS.config.update({
accessKeyId: '123',
secretAccessKey: '123',
region: 'ca-cental-1',
});
const S3 = new AWS.S3();
Теперь, когда я запускаю этот код, все работает нормально. Если я удаляю жестко закодированные значения и обращаюсь к process.env следующим образом:
AWS.config.update({
accessKeyId: process.env.AWS_ACCESS_KEY_ID,
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
region: process.env.AWS_REGION,
});
const S3 = new AWS.S3();
, он не принимает значения. Если я распечатаю значения прямо перед выполнением AWS .config.update, скажем, console.log(process.env.AWS_ACCESS_KEY_ID
, то оно печатается нормально, и мои переменные окружения работают на протяжении всего остального проекта. Как ни странно, это единственное место, где их, кажется, не подбирают.
Я также посмотрел значения, которые сохраняются в ~/.aws/credentials
, но это не похоже на aws -sdk поднимает их тоже. В любом случае, даже если это так, почему он будет работать с жестко закодированными значениями, а не с переменными среды? документация по этому вопросу довольно ограничена ..