Ошибка при загрузке огромного файла base64 в S3 Bucket - PullRequest
0 голосов
/ 13 апреля 2020

Я пытаюсь загрузить огромный видеофайл в корзину s3. Я получаю данные со стороны клиента в формате base64, которые я отправляю S3client для загрузки в мое ведро, как показано ниже: -

public class UploadFileService {
    private static final String BUCKET_NAME = "data";
    private static final Regions REGION = Regions.US_EAST_2;

    LoggerUtils loggerUtils = new LoggerUtils ();

    public String uploadFile(String fileData, String fileName, String contentType, String extension){
        try {
            loggerUtils.log ("File Data" ,  fileData);
            byte[] bI = org.apache.commons.codec.binary.Base64.decodeBase64 ((fileData.substring (fileData.indexOf (",") + 1)).getBytes ());
            InputStream fis = new ByteArrayInputStream (bI);
            AmazonS3 s3 = new AmazonS3Client ();
            Region usWest02 = Region.getRegion (REGION);
            s3.setRegion (usWest02);
            ObjectMetadata metadata = new ObjectMetadata ();
            metadata.setContentLength (bI.length);
             metadata.setContentType ("video/mp4");
            //metadata.setContentType (contentType + "/" + extension.substring (1));
            metadata.setCacheControl ("public, max-age=0");
            s3.putObject (BUCKET_NAME, fileName, fis, metadata);
            s3.setObjectAcl (BUCKET_NAME, fileName, CannedAccessControlList.PublicRead);
            URL s3Url = s3.getUrl(BUCKET_NAME, fileName);
            return  s3Url.toExternalForm();
        }
        catch (Exception exception){
            loggerUtils.log (exception.toString ());
            throw exception;
        }
    }

    public static void main(String[] args) {
        String fileName = "abc1.mp4";
        String fileData = "hkbk";
        new UploadFileService ().uploadFile (fileData, fileName, null, null);
    }
}

Но если fileData используется (base64 2 МБ) видео), то я получаю следующую ошибку: -

Error:(46, 27) java: constant string too long
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...