我正在尝试使用连接到我的RDS数据库的Node.js编写Lambda函数.数据库正在运行,可从我的Elastic Beanstalk环境访问.当我运行该函数时,它返回一个超时错误.
尝试使用完全相同的结果将超时增加到5分钟.
我在经过一些研究后得出的结论是,这可能是一个安全问题,但无法在亚马逊的文档或这个答案中找到解决方案(这是我唯一可以找到的主题).
以下是安全细节:
我的代码是:
'use strict';
console.log("Loading getContacts function");
var AWS = require('aws-sdk');
var mysql = require('mysql');
exports.handler = (event, context, callback) => {
var connection = mysql.createConnection({
host : '...',
user : '...',
password : '...',
port : 3306,
database: 'ebdb',
debug : false
});
connection.connect(function(err) {
if (err) callback(null, 'error ' +err);
else callback(null, 'Success');
});
};
Run Code Online (Sandbox Code Playgroud)
我得到的结果是:
"errorMessage": "2017-03-05T05:57:46.851Z 9ae64c49-0168-11e7-b49a-a1e77ae6f56c Task timed out after 10.00 seconds"
Run Code Online (Sandbox Code Playgroud) 我正在尝试在Android Studio(3.1)中创建一个包含Android库和Java库的项目.Java库依赖于Android库.这两个都是我项目中的模块,如下所示:
MyProject
|-android
|-java
Run Code Online (Sandbox Code Playgroud)
两者都出现在settings.gradle中:
include ':android', ':java'
Run Code Online (Sandbox Code Playgroud)
Java库依赖于Android库,如下所示:
java(build.gradle):
apply plugin: 'java-library'
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation project(':android')
}
...
Run Code Online (Sandbox Code Playgroud)
android(build.gradle):
apply plugin: 'com.android.library'
...
Run Code Online (Sandbox Code Playgroud)
尝试同步项目时,我收到以下错误:
无法解决:project :: android
为什么?
PS反过来(Android依赖于Java)工作得很好.
我正在使用Ktor 1.2.2,并且有一个 InputStream 对象,我想将其用作我接下来发出的 HttpClient 请求的主体。直到 Ktor 0.95 为止,这个InputStreamContent对象似乎就是这样做的,但它已在版本 1.0.0 中从 Ktor 中删除(遗憾的是无法弄清楚原因)。
我可以使用 ByteArrayContent 使其工作(请参见下面的代码),但我宁愿找到一个不需要将整个 InputStream 加载到内存中的解决方案......
ByteArrayContent(input.readAllBytes())
Run Code Online (Sandbox Code Playgroud)
此代码是一个简单的测试用例,模拟我想要实现的目标:
val file = File("c:\\tmp\\foo.pdf")
val inputStream = file.inputStream()
val client = HttpClient(CIO)
client.call(url) {
method = HttpMethod.Post
body = inputStream // TODO: Make this work :(
}
// [... other code that uses the response below]
Run Code Online (Sandbox Code Playgroud)
如果我遗漏了任何相关信息,请告诉我,
谢谢!
我正在编写 2 个 Android 库。当我对两者进行混淆时,它们中的混淆代码都包含一个名为 的类a.a.a.a.a,当尝试在同一应用程序中使用这两个库时,该类会导致以下错误:
在模块classes.jar (lib1) 和classes.jar (lib2) 中发现重复的类aaaaa
我怎样才能防止Proguard混淆前 3 个包而最终得到:
my.domain.lib1.a.a和my.domain.lib2.a.a?
编辑:混淆是在构建库的过程中发生的,而不是在构建应用程序时发生的。
我想将一个 Android 库项目拆分为模块。预期的项目结构是:
?? androidLibraryModule
?
?? kotlinLibraryModuleA
?
?? kotlinLibraryModuleB
Run Code Online (Sandbox Code Playgroud)
哪里androidLibraryModule取决于kotlinLibraryModuleA和kotlinLibraryModuleB:
dependencies {
implementation project(":kotlinLibraryModuleA")
implementation project(":kotlinLibraryModuleB")
}
Run Code Online (Sandbox Code Playgroud)
我将发布的唯一.aar内容是构建的结果,androidLibraryModule我希望它包含来自kotlinLibraryModuleA和的代码kotlinLibraryModuleA。到目前为止,我已经找到了实现这一目标的唯一途径是通过复制.jar的文件kotlinLibraryModuleA,并kotlinLibraryModuleB到libs的文件夹androidLibraryModule是这样的:
task copyJar(type: Copy) {
from jar
into "${project(":androidLibraryModule").projectDir.absolutePath}/libs"
}
jar.finalizedBy(copyJar)
Run Code Online (Sandbox Code Playgroud)
这个解决方案有效,但感觉有点像黑客。这是唯一的解决方案还是有更好的方法来实现这一结果?
编辑:如果androidLibraryModule是 Android 应用程序模块,则无需复制任务即可工作。
我正在使用Android Studio Arctic Fox Preview,它开始在编辑器中向我显示这些弹出窗口,显示当前不在我视野中的代码。我在任何地方都找不到此功能的名称。它是如何命名的,我该如何让它消失?
我正在尝试使用Dagger2以下结构设置一个非常基本的字段注入:
class ToInject {}
Run Code Online (Sandbox Code Playgroud)
class Injected {
@Inject
var toInject: ToInject? = null
}
Run Code Online (Sandbox Code Playgroud)
@Module
object BaseModule {
var toInject: ToInject? = null
@Provides
@JvmStatic
fun toInjectProvider(): ToInject {
if (toInject == null) {
toInject = ToInject()
}
return toInject as ToInject
}
}
Run Code Online (Sandbox Code Playgroud)
我试图注入的字段肯定是PUBLIC但编译器返回以下错误
Dagger 不支持注入私有字段
任何人都可以解释为什么我会收到此错误以及如何解决它?
BTW 构造函数注入工作:
class Injected @Inject constructor(var toInject: ToInject){}
Run Code Online (Sandbox Code Playgroud)