Ошибка типа Digital Ocean Spaces [ERR_INVALID_URL]: неверный URL-адрес

Я создаю приложение Shopify в экспрессе на локальном компьютере и получаю эту ошибку. Тот же код работает, когда я использую это приложение на сервере. Я не знаю, почему это не работает в локальной среде.

Я использую Digital Ocean Spaces, Node.js v17.0.1, @aws-sdk/client-s3 v3.171.0.

      import { S3 } from "@aws-sdk/client-s3";
import dotenv from "dotenv";

dotenv.config();

const s3Client = new S3({
    endpoint: process.env.SPACES_ENDPOINT,
    region: process.env.SPACES_REGION,
    credentials: {
        accessKeyId: process.env.SPACES_KEY,
        secretAccessKey: process.env.SPACES_SECRET,
    },
});

export default s3Client;

Я уже разместил действительные переменные env в файле .env.

Вот ошибка

      burhan@burhan:/shopifynode$ shopify app serve
✓ ngrok tunnel running at https://ebb6-2401-4900-1c02-5a90-982c-9e83-1b5e-b9ee.ngrok.io, with account testmail@mail.com
✓ .env saved to project root

⭑ To install and start using your app, open this URL in your browser:
https://ebb6-2401-4900-1c02-5a90-982c-9e83-1b5e-b9ee.ngrok.io/login?shop=my-app-staging.myshopify.com

Running server…

> dev
> cross-env NODE_ENV=development nodemon server/index.js --watch ./server

[nodemon] 2.0.15
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): server/**/*

[nodemon] watching extensions: js,mjs,json
[nodemon] starting `node server/index.js`
node:internal/errors:464
   ErrorCaptureStackTrace(err);
   ^

TypeError [ERR_INVALID_URL]: Invalid URL
   at new NodeError (node:internal/errors:371:5)
   at onParseError (node:internal/url:552:9)
   at new URL (node:internal/url:632:5)
   at parseUrl (/shopifynode/node_modules/@aws-sdk/url-parser/dist-cjs/index.js:7:38)
   at resolveEndpointsConfig (/shopifynode/node_modules/@aws-sdk/config-resolver/dist-cjs/endpointsConfig/resolveEndpointsConfig.js:14:87)
   at new S3Client (/shopifynode/node_modules/@aws-sdk/client-s3/dist-cjs/S3Client.js:22:72)
   at new S3 (/shopifynode/node_modules/@aws-sdk/client-s3/dist-cjs/S3.js:98:1)
   at file:///shopifynode/server/helpers/s3-client.js:6:18
   at ModuleJob.run (node:internal/modules/esm/module_job:185:25)
   at async Promise.all (index 0) {
 input: '"https://fra1.digitaloceanspaces.com"',
 code: 'ERR_INVALID_URL'
}

Node.js v17.0.1
[nodemon] app crashed - waiting for file changes before starting...

1 ответ

это просто предположение, но я столкнулся с той же проблемой при переходе с aws-sdk2 на aws-sdk3: кажется, что v2 позволяет конечной точке не включать протокол. в v3 это точно нужно. Проверьте свою переменную окружения и, возможно, добавьте к ней префикс «https://».

Другие вопросы по тегам