私はAmazon S3を使用するプレーフレームワークJavaアプリケーションを持っていますが、設定で自分の秘密鍵とアクセス鍵を設定したくありませんが、環境変数に保存してより安全な。キーは、私は環境変数で適切に保存していないことを意味し、nullでアクセスMac OSXで環境変数を設定できません
import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3Client;
import com.google.inject.Inject;
import play.Application;
import play.Logger;
import play.Plugin;
public class S3Plugin extends Plugin {
public static final String AWS_S3_BUCKET = "aws.s3.bucket";
public static final String AWS_ACCESS_KEY = "aws.access.key";
public static final String AWS_SECRET_KEY = "aws.secret.key";
private final Application application;
public static AmazonS3 amazonS3;
public static String s3Bucket;
@Inject
public S3Plugin(Application application) {
this.application = application;
}
@Override
public void onStart() {
String accessKey = application.configuration().getString(AWS_ACCESS_KEY);
String secretKey = application.configuration().getString(AWS_SECRET_KEY);
s3Bucket = application.configuration().getString(AWS_S3_BUCKET);
if ((accessKey != null) && (secretKey != null)) {
AWSCredentials awsCredentials = new BasicAWSCredentials(accessKey, secretKey);
amazonS3 = new AmazonS3Client(awsCredentials);
amazonS3.createBucket(s3Bucket);
Logger.info("Using S3 Bucket: " + s3Bucket);
}
}
@Override
public boolean enabled() {
System.out.println("ACCESSKEY "+ application.configuration().keys().contains(AWS_ACCESS_KEY));
return (application.configuration().keys().contains(AWS_ACCESS_KEY) &&
application.configuration().keys().contains(AWS_SECRET_KEY) &&
application.configuration().keys().contains(AWS_S3_BUCKET));
}
}
及び方法enabled()
プリント:
私はこのプラグインを持っています。
私はコマンドatom .bash_profile
と.bash_profile (/Users/me/.bash_profile)
を開いて、私は次のように貼り付け:
export AWS_ACCESS_KEY=myAccessKey
export AWS_SECRET_KEY=mySecretKey
、それを救いました。その後、printenv
コマンドを実行して自分の環境変数を示しましたが、AWS_ACCESS_KEY
でもAWS_SECRET_KEY
もありませんでした。
私は間違っていますか?
この質問はここのトピックですが、あなたはスーパーユーザーでより良い回答を得ることができます。 – chrylis