The authorization mechanism you have provided is not supported. Please use AWS4-HMAC-SHA256.

オープン
#19 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
30/100
issue の種類
バグ
明瞭さ
説明が足りない
活発さ
停滞
技術スタック
aws, java
領域
cloud

調査の方向性

Issue に示されている GeneratePreSignedUrl サンプルから始め、報告された S3 バケットに対して生成された URL を再現します。presigned request と認可に関する AWS SDK for Java の動作を調査し、その後、サンプルが必要な認可メカニズムを使用して S3 に受け入れられる URL を生成することを確認します。報告されたエラーが発生しなくなるか、サンプルがサポートされている構成を明確に文書化すれば完了です。

索引モデルが issue の本文から書いたものです。

説明

Below Sample returns subjected error, using latest version of java sdk

package com.amazonaws.samples;

import java.io.IOException;
import java.net.URL;

import com.amazonaws.AmazonClientException;
import com.amazonaws.AmazonServiceException;
import com.amazonaws.HttpMethod;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3Client;
import com.amazonaws.services.s3.model.GeneratePresignedUrlRequest;

public class GeneratePreSignedUrl {
private static String bucketName = "bucketforwso2";
private static String objectKey = "/HTML-CHEAT-SHEET-768x8555.pdf";

public static void main(String[] args) throws IOException {
	@SuppressWarnings("deprecation")
	AmazonS3 s3client = new AmazonS3Client(new ProfileCredentialsProvider());

	try {
		System.out.println("Generating pre-signed URL.");
		java.util.Date expiration = new java.util.Date();
		long milliSeconds = expiration.getTime();
		milliSeconds += 1000 * 60 * 60; // Add 1 hour.
		expiration.setTime(milliSeconds);

		GeneratePresignedUrlRequest generatePresignedUrlRequest = 
			    new GeneratePresignedUrlRequest(bucketName, objectKey);
		generatePresignedUrlRequest.setMethod(HttpMethod.GET); 
		generatePresignedUrlRequest.setExpiration(expiration);

		URL url = s3client.generatePresignedUrl(generatePresignedUrlRequest); 

		System.out.println("Pre-Signed URL = " + url.toString());
	} catch (AmazonServiceException exception) {
		System.out.println("Caught an AmazonServiceException, " +
				"which means your request made it " +
				"to Amazon S3, but was rejected with an error response " +
		"for some reason.");
		System.out.println("Error Message: " + exception.getMessage());
		System.out.println("HTTP  Code: "    + exception.getStatusCode());
		System.out.println("AWS Error Code:" + exception.getErrorCode());
		System.out.println("Error Type:    " + exception.getErrorType());
		System.out.println("Request ID:    " + exception.getRequestId());
	} catch (AmazonClientException ace) {
		System.out.println("Caught an AmazonClientException, " +
				"which means the client encountered " +
				"an internal error while trying to communicate" +
				" with S3, " +
		"such as not being able to access the network.");
		System.out.println("Error Message: " + ace.getMessage());
	}
}

}

Generating pre-signed URL.
Pre-Signed URL = https://bucketforwso2.s3.amazonaws.com/%2FHTML-CHEAT-SHEET-768x8555.pdf?AWSAccessKeyId=AKIAJH5K4ZJ6ZQB2F4XB&Expires=1514962084&Signature=rY7RjDwJkck8ZCEGWUr4lSm%2Bkuw%3D

InvalidRequest The authorization mechanism you have provided is not supported. Please use AWS4-HMAC-SHA256. 2947D4830B323D3A 4JK5mlUk/a7oOd6WJT5ol5X0prJY+0buLKr9zhnOcoz0mxAk/oc9A/nWHgIC8lggT11xneCtRLU=
主要言語
Java
スター
241
フォーク
345
PR マージ指標
30日以内にマージされた PR はありません

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

aws-samples/aws-java-sample のほかの issue

aws-samples/aws-java-sample の issue をすべて見る

似ている issue

Java の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。