2016-01-02 5 views
1

Я использую Android aws sdk 3.2 для загрузки изображений с телефона Android на amazon s3, это нормально работает, но я хочу сжать изображение перед загрузкой на amazon s3.Сжатие изображения перед загрузкой на amazon s3 с помощью AWS sdk в Android

Я много исследовал и нашел несколько решений.

  1. Сжатие изображения на стороне клиента и создание копии этого файла и загрузка на S3 после загрузки. Удалите этот файл.

  2. Сжатие изображения на стороне клиента и загрузка этого изображения на сервер EC2, а затем загрузка того же изображения в s3 из EC2.

Я использую этот код, предоставленный амазонкой: -

private static AmazonS3Client getS3Client(Context context) { 
    if (sS3Client == null) { 
     sS3Client = new AmazonS3Client(getCredProvider(context.getApplicationContext())); 
    } 
    return sS3Client; 
} 


/** 
* Gets an instance of the TransferUtility which is constructed using the 
* given Context 
* 
* @param context 
* @return a TransferUtility instance 
*/ 
public static TransferUtility getTransferUtility(Context context) { 
    if (sTransferUtility == null) { 
     sTransferUtility = new TransferUtility(getS3Client(context.getApplicationContext()), 
       context.getApplicationContext()); 
    } 


    return sTransferUtility; 
} 

    private static CognitoCachingCredentialsProvider getCredProvider(Context context) { 
    if (sCredProvider == null) { 
     sCredProvider = new CognitoCachingCredentialsProvider(
       context.getApplicationContext(), 
       Constants.POOL_ID, 
       Regions.AP_NORTHEAST_1); 
    } 
    return sCredProvider; 
} 


getTransferUtility(context).upload(
       "bucket name", uuid, 
       new File(path)); 

Я хочу знать, это амазонка сам предоставляет возможность сжать файл затем загрузить или есть лучший способ загрузки файла s3 после сжатия?

ответ

0

Вы правы в AWS S3. Он не поддерживает сжатие. Он принимает файл только как есть. Вы предложили правильные решения. К сожалению, SDK не может помочь вам с сжатием. Хотя вы можете использовать TransferUtility для загрузки.

+0

Могу ли я сжать файл на Android-клиенте, а затем загрузить это растровое изображение непосредственно на s3, возможно ли это с помощью sdk? –

+0

SDK не может помочь вам сжать файл. Инструкции по сжатию файла можно найти здесь: http://www.oracle.com/technetwork/articles/java/compress-1565076.html. Затем вы сообщаете SDK загрузить сжатый файл. Не забудьте сделать очистку позже. – Yangfan

+0

Является amazon sdk открытым исходным кодом, и если это возможно, вы можете мне помочь, в каком файле я должен сжимать изображение перед загрузкой на s3? –

Смежные вопросы