2017-12-31 42 views
0

내가 여기에 구글 플랫폼 API를 사용하고 Node.js를에서 중포 기지 스토리지에 이미지를 업로드하려고 내 코드입니다 :구글 클라우드 플랫폼 업로드 이미지

function upload_file(filename, buffer) { 
    let file = bucket.file(filename); 
    console.log(`file created: ${filename}`); 
    file.save(buffer) 
    .then(() => { 
     console.log(`${filename} should be in bucket now`); 
     return file.bucket.upload(filename); 
    }) 
    .then((data) => { 
     console.log(`upload succeed: ${filename}`); 
    }).catch((err) => { 
     console.log(err); 
    }); 
} 

그리고 여기에 출력됩니다 :

file created: 7CD5F2FA-CB2F-4014-BB65-3BBC3D8B3254.jpg 
7CD5F2FA-CB2F-4014-BB65-3BBC3D8B3254.jpg should be in bucket now 
{ Error: ENOENT: no such file or directory, stat '7CD5F2FA-CB2F-4014-BB65-3BBC3D8B3254.jpg' 
    at Error (native) 
    errno: -2, 
    code: 'ENOENT', 
    syscall: 'stat', 
    path: '7CD5F2FA-CB2F-4014-BB65-3BBC3D8B3254.jpg' } 

버킷을 확인했는데 방금 업로드 한 이미지를 찾았습니다. 그러나이 오류는 파일을 찾을 수 없다고 밝혔다. 이 문제를 어떻게 해결할 수 있습니까?

답변

0

코드가 혼란 스럽습니다. 두 번 업로드하려고하는 것 같습니다. 파일에

쓰기 임의의 데이터 :

첫째, 당신은 문서화되어 file.save()를 호출하고 있습니다.

File # createWriteStream을 래핑하는 편리한 메소드입니다.

이 버킷에 파일을 업로드 :

은 그럼 당신은 문서화되어 bucket.upload()를 호출하고 있습니다. 이것은 파일 # createWriteStream을 감싸는 편리한 메소드입니다.

그럼 제가 취한 것은 File # createWriteStream을 두 번 호출한다는 것입니다. 그건 말이되지 않습니다. 파일 이후

return file.bucket.upload(filename); 

bucket라는 속성을 가지고 있지 않습니다

또한,이 코드는 이해가되지 않습니다. 나는이 코드가 그 사실에 단순히 실패 할 것으로 기대한다.

클라우드 스토리지 API를 조금 더 공부하여 올바른 작업을 수행 할 시간이라고 생각합니다.

관련 문제