미리 서명 된 URL을 생성 한 후 NoSuchKey 오류가 발생합니다.

sdsd

내 s3 버킷에 대해 미리 서명 된 URL을 생성하려고합니다. 그 후 브라우저에 생성 된 URL을 복사하여 붙여 넣으면이 오류가 발생합니다.

<Error>
<Code>NoSuchKey</Code>
<Message>The specified key does not exist.</Message>
<Key>xx</Key>
<RequestId>xx</RequestId>
<HostId>xx</HostId>
</Error>

내 코드 :

const aws = require('aws-sdk');
const multer = require('multer');
const multerS3 = require('multer-s3');
const dotenv = require('dotenv');
dotenv.config();

let region = 'us-east-1';

aws.config.update({
  secretAccessKey: process.env.SECRET_ACCESS_KEY,
  accessKeyId: process.env.ACCESS_KEY_ID,
  region: region,
  signatureVersion: 'v4'
});

var s3 = new aws.S3({
  region:region
});

const fileFilter = (req, file, cb) => {
  if (file.mimetype === 'image/jpeg' || file.mimetype === 'image/png') {
    cb(null, true);
  } else {
    cb(new Error('Invalid file type, only JPEG and PNG is allowed!'), false);
  }
};

let bucketName = 'somebucketname123';

const signedUrlExpireSeconds = 60 * 5;

const url = s3.getSignedUrl('getObject', {
  Bucket: bucketName,
  Key: process.env.SECRET_ACCESS_KEY,
  Expires: signedUrlExpireSeconds
})

console.log('url', url);

const upload = multer({
  fileFilter: fileFilter,
  storage: multerS3({
    acl: 'public-read',
    s3,
    bucket: bucketName,
    key: function(req, file, cb) {       
      req.file = file.originalname;
      cb(null, file.originalname);
    }
  })
});



module.exports = upload;

저는 AWS를 처음 사용하는데 제가 여기서 뭘 잘못하고 있는지 모르겠습니다 ...

새로 생성 된 미리 서명 된 URL을 브라우저에 붙여 넣으면 어떻게됩니까? 이 미리 지정된 URL이 특정 파일에 대해 생성됩니까? 코드에서 s3 버킷의 파일 이름을 알려야하는 경우

Balu vyamajala

bucketParms의 KEY는 s3 객체의 키 여야합니다.

S3에서 객체를 다운로드하기위한 서명 된 URL

버킷 : test-events ObjectKey : myfolder / test.json

const bucketParms = {
  Bucket: "test-events",
  Key: "myfolder/test.json",
  Expires: 60,
};

다운로드 :

s3.getSignedUrl("getObject", bucketParms, (error, url) => {
  if (error) console.log("error", error);
  if (url) console.log("url", url);
});

객체를 S3에 업로드하려면 업로드 할 버킷과 키를 지정해야합니다.

s3.getSignedUrl("putObject", bucketParms, (error, url) => {
  if (error) console.log("error", error);
  if (url) console.log("url", url);
});

이 URL을 업로드에 사용하려면 컬 또는 우편 배달부를 할 수 있습니다.

curl --location --request PUT 'https://test-events.s3.amazonaws.com/98..?X....' \
--header 'Content-Type: image/png' \
--data-binary '/Users/user/image/path'

또는 Body binaryPostMan PUT / POST 에서 파일을 선택합니다. 개체가 업로드됩니다 myfolder/test.json(선택한 파일 이름은 중요하지 않음).

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

메모리 모듈을 교체 한 후 Memtest에서 동일한 오류가 발생합니다. MB 문제?

분류에서Dev

Firebase에서 항목을 성공적으로 삭제 한 후 오류가 발생합니다.

분류에서Dev

Ubuntu 14.04를 새로 설치 한 후 shim 서명 오류가 발생합니다.

분류에서Dev

잘못된 코드 줄을 제거한 후에도 오류가 계속 발생합니다.

분류에서Dev

오류 유효성 검사가 발생한 후 onChange에서 React 후크가 오작동합니다.

분류에서Dev

SQL 쿼리의 값을 int에 추가하려고 한 후 키 오류가 발생합니다.

분류에서Dev

Webpack을 통해 처리 된 후 ES6 스크립트 오류가 발생합니다.

분류에서Dev

서명 된 번들 생성 : 번들 파일을 빌드하는 동안 오류가 발생했습니다. '기타'는 뿌리가 다릅니다.

분류에서Dev

오류가 발생한 후 DataGrid에서 다음 셀을 편집하려면 어떻게해야합니까?

분류에서Dev

모델에 대한 입력 생성과 관련된 laravel에서 오류가 발생합니다.

분류에서Dev

패키지를 이미 설치 한 후 도커 작성을 실행할 때 '모듈을 찾을 수 없음'오류가 계속 발생합니다.

분류에서Dev

Stripe + React에서 잘못된 후크 호출 오류가 발생합니다.

분류에서Dev

CRUD 코드 생성 후 테이블을 변경하면 yii에서 오류가 발생합니다.

분류에서Dev

이미지 재생 (Jquery)을 클릭하여 상위 div에서 마지막 동영상을 재생 한 후 오류가 발생했습니다.

분류에서Dev

앱을 Heroku에 배포 한 후 API_URL 구성 변수 앞에 현재 앱의 URL이 추가되어 잘못된 요청 URL이 발생합니다.

분류에서Dev

os.walk를 사용한 후 Join에서 startswith 오류가 발생합니다.

분류에서Dev

미리 서명 된 URL을 생성하는 경우

분류에서Dev

메인 화면을 구성 요소로 분할 한 후 navigation.navigate 유형 오류가 발생합니다.

분류에서Dev

릴리스 파이프 라인에서 다음 오류가 발생합니다. 지정된 패키지에 대한 변환을 적용 할 수 없습니다. 변경 사항이 이미 패키지에 있습니다.

분류에서Dev

0.7에서 0.8.1.1로 업그레이드 한 후 포함 된 kafka 대기열에 생성하는 동안 오류가 발생했습니다.

분류에서Dev

명제에 대한 귀납법에서 기억을 사용하면 Coq에서 '잘못 입력 된'오류가 발생합니다.

분류에서Dev

cakephp 3을 설치 한 후 오류가 발생했습니다.

분류에서Dev

사용자가 작성한 작업에서 SAS 형식과 관련된 오류가 발생합니다.

분류에서Dev

서명 된 번들 / APK 생성-Lint가 릴리스 대상을 어셈블하는 동안 치명적인 오류를 발견했습니다.

분류에서Dev

QBO에서 견적을 생성하면 LineDetail 유형에 대한 오류가 발생합니다.

분류에서Dev

numpy 배열에서 pandas DataFrame을 생성하면 이상한 오류가 발생합니다.

분류에서Dev

어셈블리로 작성된 간단한 프로그램을 실행할 때 세그멘테이션 오류가 발생합니다.

분류에서Dev

VB.NET에서 .IsDisposed ()를 확인한 후 "삭제 된 개체에 액세스 할 수 없습니다"오류가 발생합니다.

분류에서Dev

생성 된 명명 된 쿼리를 사용하려고 할 때 sqlException에 오류가 발생했습니다.

Related 관련 기사

  1. 1

    메모리 모듈을 교체 한 후 Memtest에서 동일한 오류가 발생합니다. MB 문제?

  2. 2

    Firebase에서 항목을 성공적으로 삭제 한 후 오류가 발생합니다.

  3. 3

    Ubuntu 14.04를 새로 설치 한 후 shim 서명 오류가 발생합니다.

  4. 4

    잘못된 코드 줄을 제거한 후에도 오류가 계속 발생합니다.

  5. 5

    오류 유효성 검사가 발생한 후 onChange에서 React 후크가 오작동합니다.

  6. 6

    SQL 쿼리의 값을 int에 추가하려고 한 후 키 오류가 발생합니다.

  7. 7

    Webpack을 통해 처리 된 후 ES6 스크립트 오류가 발생합니다.

  8. 8

    서명 된 번들 생성 : 번들 파일을 빌드하는 동안 오류가 발생했습니다. '기타'는 뿌리가 다릅니다.

  9. 9

    오류가 발생한 후 DataGrid에서 다음 셀을 편집하려면 어떻게해야합니까?

  10. 10

    모델에 대한 입력 생성과 관련된 laravel에서 오류가 발생합니다.

  11. 11

    패키지를 이미 설치 한 후 도커 작성을 실행할 때 '모듈을 찾을 수 없음'오류가 계속 발생합니다.

  12. 12

    Stripe + React에서 잘못된 후크 호출 오류가 발생합니다.

  13. 13

    CRUD 코드 생성 후 테이블을 변경하면 yii에서 오류가 발생합니다.

  14. 14

    이미지 재생 (Jquery)을 클릭하여 상위 div에서 마지막 동영상을 재생 한 후 오류가 발생했습니다.

  15. 15

    앱을 Heroku에 배포 한 후 API_URL 구성 변수 앞에 현재 앱의 URL이 추가되어 잘못된 요청 URL이 발생합니다.

  16. 16

    os.walk를 사용한 후 Join에서 startswith 오류가 발생합니다.

  17. 17

    미리 서명 된 URL을 생성하는 경우

  18. 18

    메인 화면을 구성 요소로 분할 한 후 navigation.navigate 유형 오류가 발생합니다.

  19. 19

    릴리스 파이프 라인에서 다음 오류가 발생합니다. 지정된 패키지에 대한 변환을 적용 할 수 없습니다. 변경 사항이 이미 패키지에 있습니다.

  20. 20

    0.7에서 0.8.1.1로 업그레이드 한 후 포함 된 kafka 대기열에 생성하는 동안 오류가 발생했습니다.

  21. 21

    명제에 대한 귀납법에서 기억을 사용하면 Coq에서 '잘못 입력 된'오류가 발생합니다.

  22. 22

    cakephp 3을 설치 한 후 오류가 발생했습니다.

  23. 23

    사용자가 작성한 작업에서 SAS 형식과 관련된 오류가 발생합니다.

  24. 24

    서명 된 번들 / APK 생성-Lint가 릴리스 대상을 어셈블하는 동안 치명적인 오류를 발견했습니다.

  25. 25

    QBO에서 견적을 생성하면 LineDetail 유형에 대한 오류가 발생합니다.

  26. 26

    numpy 배열에서 pandas DataFrame을 생성하면 이상한 오류가 발생합니다.

  27. 27

    어셈블리로 작성된 간단한 프로그램을 실행할 때 세그멘테이션 오류가 발생합니다.

  28. 28

    VB.NET에서 .IsDisposed ()를 확인한 후 "삭제 된 개체에 액세스 할 수 없습니다"오류가 발생합니다.

  29. 29

    생성 된 명명 된 쿼리를 사용하려고 할 때 sqlException에 오류가 발생했습니다.

뜨겁다태그

보관