php 편집기 Xinyi는 서버 리소스 소진을 방지하기 위해 S3 파일 다운로드를 처리하는 효율적인 방법을 소개합니다. S3는 Amazon에서 제공하는 확장 가능한 클라우드 스토리지 서비스이지만 대용량 파일 다운로드를 처리할 때 기존 다운로드 방법을 사용하면 서버 리소스가 고갈될 수 있습니다. 이 기사에서는 S3 파일 다운로드를 효과적으로 처리하고 청크 다운로드 및 스트리밍을 통해 서버 성능과 사용자 경험을 향상시키는 PHP 기반 솔루션을 소개합니다. 이 방법에 대해 함께 알아볼까요?
S3에서 여러 파일 형식을 업로드하고 다운로드할 수 있는 go-gin 애플리케이션이 있습니다.
s3에 업로드하기 전의 모든 파일은 AWS s3cryptoclient, AES GCM 및 KMS의 키를 사용하여 암호화됩니다. 따라서 s3 버킷에 관한 한 모든 것이 바이너리입니다.
getObject SDK 명령을 사용하여 파일을 서버에 다운로드하고 해독한 다음 io.write(tempfile)를 사용하여 다운로드할 수 있도록 이 파일을 클라이언트에 제공할 수 있습니다.
여기서 문제는 S3에 10GB 크기의 파일이 포함되어 있고 매일 여러 사용자가 서버에 액세스한다는 것입니다. 앞서 살펴보았듯이 16GB RAM이 있는 서버에 임시 파일을 작성하면 메모리가 빨리 소모될 수 있지만 이러한 서버를 실행하는 데 드는 비용도 염두에 두어야 합니다.
병목 현상은 파일을 제공하기 전에 복호화해야 한다는 점입니다. 이 사용 사례에서는 미리 서명된 S3 URL이면 충분합니다. 단, 고객이 암호화한 경우를 제외하고는 s3 미리 서명된 URL로 해독이 제공되지 않습니다. 우리의 경우 AWS 암호화가 처리 중이므로 이 솔루션을 사용할 수 없습니다.
go-gin/NGINX를 사용하여 클라이언트에 직접 파일을 쓸 수 있는 이 문제를 해결하기 위한 팁이나 가능한 사용 사례가 있는 사람이 있나요?
현재 사용자의 파일 다운로드 처리
으아악}
한 가지 옵션은 객체를 응답 본문으로 클라이언트에 직접 쓰는 것입니다.
으아악위 내용은 리소스 부족 없이 S3 파일 다운로드 처리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!