как загрузить изображение в корзину aws s3 и получить сохраненный URL-адрес в студии Android, используя java - PullRequest
0 голосов
/ 10 июля 2020

Мне нужно загрузить изображение в корзину AWS s3 в android. Я реализовал, что пользователь сделал фотографию из галереи после того, как получил путь к изображению, который мне нужен, чтобы сохранить его в корзине и получить URL-адрес из корзины в android.

У меня ЕСТЬ ключ доступа и секретный ключ и имя корзины. Я не понимаю, как это реализовать в android. Пожалуйста, помогите мне.

// Это код для получения изображения из галереи

private void selectImage() {
        final CharSequence[] options = {"Choose from Gallery", "Cancel"};
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("Upload Photo!");
        builder.setItems(options, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int item) {
                if (options[item].equals("Choose from Gallery")) {
                    Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
                    startActivityForResult(intent, 2);
                } else if (options[item].equals("Cancel")) {
                    dialog.dismiss();
                }
            }
        });
        builder.show();
    }

    @SuppressLint("LongLogTag")
    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode == RESULT_OK) {
            if (requestCode == 2) {
                Uri selectedImage = data.getData();
                String[] filePath = {MediaStore.Images.Media.DATA};
                Cursor c = this.getContentResolver().query(selectedImage, filePath, null, null, null);
                c.moveToFirst();
                int columnIndex = c.getColumnIndex(filePath[0]);
                String picturePath = c.getString(columnIndex);
                c.close();
                Bitmap thumbnail = (BitmapFactory.decodeFile(picturePath));
                thumbnail = getResizedBitmap(thumbnail, 400);
                Log.w("path of image from gallery......******************.........", picturePath + "");
                imageView.setImageBitmap(thumbnail);
                BitMapToString(thumbnail);
            }
        }
    }

    private void BitMapToString(Bitmap userImage1) {
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        userImage1.compress(Bitmap.CompressFormat.PNG, 100, baos);
        byte[] b = baos.toByteArray();
        Document_img1 = Base64.encodeToString(b, Base64.DEFAULT);
        System.out.println(Document_img1 + "........IMAGE");
    }

    private Bitmap getResizedBitmap(Bitmap image, int maxSize) {
        int width = image.getWidth();
        int height = image.getHeight();

        float bitmapRatio = (float) width / (float) height;
        if (bitmapRatio > 1) {
            width = maxSize;
            height = (int) (width / bitmapRatio);
        } else {
            height = maxSize;
            width = (int) (height * bitmapRatio);
        }
        return Bitmap.createScaledBitmap(image, width, height, true);
    }

1 Ответ

0 голосов
/ 10 июля 2020

Пожалуйста, проверьте категорию хранилища в AWS библиотеке Amplify .

Необходимо выполнить некоторую настройку / конфигурацию (как указано в этом руководстве), но фактическая загрузка будет выглядеть вот так:

Amplify.Storage.uploadFile(
    "remoteS3Key",
    localFile,
    result -> Log.i("Demo", "Successfully uploaded: " + result.getKey()),
    failure -> Log.e("Demo", "Upload failed", failure)
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...