java - 从 s3 读取 .p12 文件到 java apns 库
问题描述
我有一个用 java 编写的 AWS lambda 函数。它是适用于 android 和 ios 设备的通知服务。Android 使用 FCM 实现,iOS 使用 java apns sdk 实现。
对于 APNs,我需要向 APNs 函数发送一个安全文件,即 p12 文件。
APNs 函数接受以下格式的安全文件:
- java.io.文件
- java.io.InputStream
- 字节[]
- java.security.KeyStore
- java.lang.String - 用于文件路径
因此,我从 s3 存储桶中获取文件并将其包装在 inputstream 对象中并将输入流发送到 apns 函数。
我的代码片段下载文件并将其包装在 inputstream 对象中:
BasicAWSCredentials awsCreds = new BasicAWSCredentials(key,password);
InputStream securityFileInputStream = null;
String bucket_name = <bucket_name>;
String key_name = <file_name>;
AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
.withRegion(Regions.<region_name>)
.withCredentials(new AWSStaticCredentialsProvider(awsCreds))
.build();
try {
S3Object o = s3Client.getObject(bucket_name, key_name);
securityFileInputStream = o.getObjectContent();
} catch (AmazonServiceException | IOException e) {
logger.info(e.toString());
}
不知何故,该函数没有抛出错误,但 APNs 通知没有到达用户。 有没有更好的方法来下载安全文件并以上述任何格式发送。
解决方案
推荐阅读
- leaflet - 如何在不破坏“流”显示的情况下将弹出窗口或绑定弹出窗口添加到 Leaflet FlowMap 中的点/标记?
- php - Laravel 删除数组中具有重复值的对象
- python - 熊猫数据框不断添加到现有的
- python - 姜戈。创建复合主键
- mysql - 如何在MySql中以水平格式获取垂直值
- laravel - 当我检查控制台时,我的 app.js 代码更改没有出现。如何修复它?
- cassandra - JanusGraph 没有足够的副本可用于一致性查询 QUORUM
- c++ - 带有自定义类的共享指针语法背后的任何原因,模板如下
- php - 如何使用下拉列表发送排序
- javascript - 如何使 ReactJS onClick 函数更改文本区域的值?