0

S3 버킷의 내용을 로컬 디렉토리에 복사하지만 PowerShell에서 오류 출력이 발생합니다.S3 버킷의 내용을 복사하여 PowerShell에서 오류가 발생했습니다.

복사-S3Object :

Copy-S3Object -BucketName $bucket -Key $object.Key -LocalFile $localFilePath -Region $region 

을 나는이 오류가 이유는 무엇입니까 :이 명령 가리키는

요청 범위는 만족할만한되지 않는 이유는 무엇입니까? 복사 할 필요가있는 원하는 파일은 실제로 로컬로 복사됩니다.

답변

2

왜 내가 S3에서 반환 된 오류가 발생하는지 말할 수는 없지만 여러 객체를 복사하는 경우 -LocalFile이 아닌 -LocalFolder 매개 변수를 사용하려고한다고 말할 수 있습니다. -LocalFolder는 접두어를 하위 경로로 보존합니다.

S3에서 하나 이상의 개체를 다운로드 할 때 Read-S3Object cmdlet은 Copy-S3Object와 동일하게 작동하지만 -KeyPrefix를 사용하여 개체가 공유하는 공통 접두사를 지정하고 -Folder를 사용하여 다운로드해야하는 폴더를 지정합니다 에.

이것은 또한 우리가 복사에서 -LocalFolder를 사용하고 읽기에서 폴더를 사용했는지 확인할 필요가 있음을 상기시켜줍니다. 별칭이 일관성있게 사용할 수 있다고 생각 되긴하지만.

HTH

(편집) : 나는 그것이있는 경우에도 해당 cmdlet의 코드를 검토하고 다중 객체의 다운로드에 그대로 cmdlet이 일하는 것이 나에게 표시되지 않습니다 오늘 아침에 약간의 시간을 보냈다 -LocalFolder 매개 변수. 다운로드 할 단일 개체가있는 경우 -Key/-LocalFile을 사용하면 올바른 매개 변수 조합이됩니다. -LocalFolder가 전달되면 cmdlet은 -Key를 개체 집합의 공통 키 접두사로 처리하는 대신 단일 파일 다운로드를 수행하도록 내부적으로 설정합니다. 그래서 나는 여기에 내가보고있는 버그가 있다고 생각합니다.

그동안 나는 다운로드를하기 위해 Read-S3Object를 사용할 것입니다. 단일 (-Key) 또는 다중 객체 다운로드 (-KeyPrefix) 모드를 모두 지원합니다. https://docs.aws.amazon.com/powershell/latest/reference/index.html?page=Read-S3Object.html&tocid=Read-S3Object

+0

나는 System.InvalidOperationException을 얻었습니다. 요청한 범위는 읽을 수있는 S3Object -BucketName $ BucketName -KeyPrefix $ BuildVersion에서 만족스럽지 않습니다. 이유는 모르겠지만 지난 며칠 동안 $ DeploymentDir을 확인하십시오. 우리가 알고 있어야 할 다른 문제가 숨어 있다고 생각하지 않습니까? –

관련 문제