다음 코드 결과가 S3에 0 바이트 파일이되고 오류 메시지가 나타나지 않는 버그를 수정하려고합니다.Amazon S3에 대한 FileUpload 결과가 0 바이트 파일
이 코드는 이미지와 원하는 이미지 경로 (데이터베이스 래퍼 객체에서)를 Amazon의 S3에 포함하는 스트림 (파일 이름이 약한 FileUpload4)을 피드하지만 파일 자체는 업로드되지 않습니다.
는CloudUtils.UploadAssetToCloud(FileUpload4.FileContent, ((ImageContent)auxSRC.Content).PhysicalLocationUrl);
ContentWrapper.SaveOrUpdateAuxiliarySalesRoleContent(auxSRC);
번째 라인은 단순히 (가정) 업로드 픽쳐에 대한 정보를 저장하는 데이터베이스 객체를 저장한다. 이 저장은 오류없이 위의 행이 실행됨을 보여줍니다.
통화 위의 첫 번째 라인은이 방법에서, 적절한 bucketname 검색 한 후 : 나는 스트림이 좋은 스트림 있는지 만들었
public static bool UploadAssetToCloud(Stream asset, string path, string bucketName, AssetSecurity security = AssetSecurity.PublicRead)
{
TransferUtility txferUtil;
S3CannedACL ACL = GetS3ACL(security);
using (txferUtil = new Amazon.S3.Transfer.TransferUtility(AWSKEY, AWSSECRETKEY))
{
TransferUtilityUploadRequest request = new TransferUtilityUploadRequest()
.WithBucketName(bucketName)
.WithTimeout(TWO_MINUTES)
.WithCannedACL(ACL)
.WithKey(path);
request.InputStream = asset;
txferUtil.Upload(request);
}
return true;
}
을 - 나는, 다른 곳에서는 내가 권한이있는 저장할 수 있습니다 버킷이 존재하고 경로는 괜찮습니다 (파일은 S3에서 대상에 생성되며 스트림의 내용으로 채워지지 않습니다). 나는 내 재치에 가깝다. 내가 뭘 놓치고 있니?
편집 : 내 동료 중 한 명은 FileUpload의 PostedFile 속성이 더 좋을 것이라고 지적했습니다. 대신 지금은 스트림을 꺼내고 있습니다. 여전히 작동하지 않습니다.
스트림의 위치는 무엇입니까? 위치를 0으로 재설정해야 할 수도 있습니다. – JMarsch