Amazon S3 kullanan bir oyun çerçevesi java uygulamasına sahibim ve yapılandırmalarda gizli ve erişim anahtarlarımı ayarlamak istemiyorum, ancak bunu yapmak için ortam değişkenine kaydetmek istiyorum daha güvenli. anahtar ise ortam değişkenleri düzgün kaydetmek vermedi, yani null erişmekMac OsX üzerinde ortam değişkeni ayarlanamıyor
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));
}
}
ve yöntem enabled()
baskılar:
ben bu eklentiyi var.
Ben komutuylaatom .bash_profile
ile
.bash_profile (/Users/me/.bash_profile)
açıldı ve şu yapıştırılan:
export AWS_ACCESS_KEY=myAccessKey
export AWS_SECRET_KEY=mySecretKey
ve onu kurtardı. Bundan sonra, ortam değişkenlerimi listeleyen printenv
komutunu çalıştırdım ancak AWS_ACCESS_KEY
ya da AWS_SECRET_KEY
orada yoktu.
Neyi yanlış yapıyorum?
Bu soru konuyla ilgili, ancak Süper Kullanıcı'da daha iyi bir yanıt almanız olasıdır. – chrylis