Код: Выделить всё
@RequiredArgsConstructor(onConstructor = @__(@Inject))
public class S3ModelAuditor implements ModelAuditor {
private final S3Client s3Client;
@Named(MODEL_AUDIT_BUCKET_NAME)
private final String bucketName;
... class methods...
}
Код: Выделить всё
public class PluginModule extends AbstractModule {
public static final String MODEL_AUDIT_BUCKET_NAME = "MODEL_AUDIT_BUCKET_NAME";
@Override
protected void configure() {
super.configure();
bind(ModelAuditor.class).to(S3ModelAuditor.class);
}
@Provides
@Named(MODEL_AUDIT_BUCKET_NAME)
public String getModelAuditBucketName() {
String bucketName = System.getenv("MODEL_AUDIT_BUCKET");
Objects.requireNonNull(bucketName, "MODEL_AUDIT_BUCKET environment variable is required");
return bucketName;
}
@Provides
@Singleton
public S3Client getS3Client(@Named(PLUGIN_CREDENTIALS_NAME) final AwsCredentialsProvider credentialsProvider) {
return S3Client.builder()
.credentialsProvider(credentialsProvider)
.build();
}
... other provider methods ...
}
Код: Выделить всё
software.amazon.awssdk.core.exception.SdkClientException: Unable to marshall request to JSON: Bucket cannot be empty.
Код: Выделить всё
PutObjectRequest request = PutObjectRequest.builder()
.bucket(bucketName)
.key(key)
.build();
Подробнее здесь: https://stackoverflow.com/questions/787 ... des-method