Pesquisa de site

javascript - Como posso enviar arquivo csv para o S3 contendo '/' na URL usando aws-sdk/lib-storage?


Estou tentando enviar um arquivo csv usando aws-sdk/lib-storage

Quando especifico a URL do S3 (ex. https://s3.us-east-1.amazonaws.com/aaa/bbb/ccc/ddd/eee) na propriedade Bucket dos parâmetros, ocorreu a mensagem de erro InvalidBucketName: O nome do bucket não deve conter '/'.

Como posso especificar uma URL contendo '/'?

- código

      const parallelUploads3 = new Upload({
        client: new S3Client({
          region: 'us-east-1',
          credentials
        }),
        params: {
          Bucket:
            'https://s3.us-east-1.amazonaws.com/aaa/bbb/ccc/ddd/eee,
          Key: file.name,
          Body: file
        },
        leavePartsOnError: false
      })

Quando eu especifico apenas o nome do bucket, sem conter '/', o envio foi bem-sucedido.

Resposta #1

No parâmetro 'Bucket', apenas informe o nome do bucket e no 'Key' informe o caminho e o nome do arquivo. E também não é necessário colocar 'https://s3.us-east-1.amazonaws.com/' no parâmetro 'Bucket'. Então, seu código ficaria assim:

const parallelUploads3 = new Upload({
        client: new S3Client({
          region: 'us-east-1',
          credentials
        }),
        params: {
          Bucket: <Bucket Name>,
          Key: <File Path>/file.name,
          Body: file
        },
        leavePartsOnError: false
      })