小编Jan*_*pan的帖子

MongoError:不允许用户执行操作

我使用MongoDB Atlas作为我的数据库.

我正在使用angular4和loopi作为api.

我的应用程序连接到我的数据库.但是,当我尝试获取数据时,我收到此错误(我已使用dbname替换了我的dbname):

MongoError: user is not allowed to do action [find] on [dbname.$cmd]
Run Code Online (Sandbox Code Playgroud)

如果我在AWS上使用本地mongodb客户端或mongodb实例,则查询工作正常.但是,在使用地图集时,我收到此错误.

loopback mongodb angular

11
推荐指数
8
解决办法
8357
查看次数

模拟onitemclick上的点击

我已经有了它onitemclickListener,它的工作原理,

list.setOnItemClickListener( new OnItemClickListener()
{
     public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3){
         ...
     }
});
Run Code Online (Sandbox Code Playgroud)

但是,我需要从不同的按钮实现相同的功能.

如何引用onitemclickListener我的列表中已存在的内容?

我不想复制所有代码并再次使用它,因为它大约是500行.

android

6
推荐指数
2
解决办法
9328
查看次数

如何在Android中进行位图压缩后保存Exif数据

使用相机意图拍摄照片后,我压缩位图以降低文件大小.问题是压缩后,它会丢失所有EXIF数据.我在检索原始EXIF数据时没有问题,但是,如何在压缩后将此EXIFF数据添加到字节数组中?

(我的猜测是取字节数组并创建一个位图,然后添加旧的EXIF数据,然后再添加到字节数组,但这是一个移动应用程序,我拍了很多图像,所以我不想浪费记忆)

这是我压缩位图并保存到字节数组输出流的代码:

myBitmapImage.compress(Bitmap.CompressFormat.JPEG, 75, outputstream);//Losing EXIF data here
byte[] ba = outputstream.toByteArray(); // How to add EXIF data here ?
Run Code Online (Sandbox Code Playgroud)

android exif android-camera-intent android-bitmap

5
推荐指数
1
解决办法
3306
查看次数

Azure自定义404页面

我使用Microsoft Azure创建了一个Web应用程序,并将静态html页面上传到Web应用程序.

它工作正常,但是,我想设置一个自定义404页面.我在哪里或如何使用Azure门户执行此操作?

需要明确的是,这不是一个视觉工作室项目,它只是一些静态的html文件.我只想告诉azure使用我的404页面,而不是当找不到页面时显示的默认文本.

编辑

请注意,这与IIS无关.我甚至没有web.config文件.我只是在Azure中托管一些静态html文件,并希望自定义404页面.我已经制作了404.html页面.

html azure azure-web-sites

5
推荐指数
1
解决办法
4994
查看次数

如何在Angular4中将ECS任务角色凭证与AWS开发工具包一起使用

我正在使用aws-sdk for JS / nodejs将Angular4中的文件上传到S3存储桶。

上传工作正常,没有任何问题,如果我指定我的凭据(accesskeyId,ACCESSKEY)创建S3客户对象时。

问题

我正在尝试使用ECSCredentials,因为我不想在代码的任何地方公开我的访问密钥

我的应用程序正在ECS容器实例中运行,并通过ECS Task执行。

我在IAM中创建了ECS任务角色,并通过容器定义内的任务角色将其附加到任务。(我遵循了此文档http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html

任务运行后,我可以登录容器(通过ssh),并通过“ curl 169.254.170.2 $ AWS_CONTAINER_CREDENTIALS_RELATIVE_URI”检查权限是否正常工作

这可以100%正常工作,并像示例一样输出我的凭据。

但是,我很难让它与aws-sdk一起使用。

在Angular4组件中,我像这样添加SDK:

import { ECSCredentials, S3 } from 'aws-sdk';
Run Code Online (Sandbox Code Playgroud)

我像这样创建我的S3对象:

private _s3ClientConfig: S3.ClientConfiguration;
private _s3: S3;
Run Code Online (Sandbox Code Playgroud)

然后像这样创建实例:

this._s3ClientConfig = {
credentials: new ECSCredentials({
  httpOptions: { timeout: 5000 },
  maxRetries: 10,
  retryDelayOptions: { base: 200 }}),
region: this._awsConfig.s3BucketRegion,
sslEnabled: true
};

this._s3 = new S3(this._s3ClientConfig);
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我得到了错误:

ECSCredentials is not a constructor
Run Code Online (Sandbox Code Playgroud)

我也试过省略“凭证”部分,但是,我得到了错误: …

amazon-ecs aws-sdk angular

5
推荐指数
0
解决办法
576
查看次数

无法从具有0行,64列的CursorWindow读取第0行第0列

我有时在我的logcat中得到这个错误.

无法从具有0行,64列的CursorWindow读取第0行第0列.

首先,有点背景故事.我有一个在我们组织中的许多设备上运行的应用程序.它主要运行在大约20个三星Note 8设备,2个三星Note 10.1设备和其他几个.到目前为止,问题仅发生在Note 8设备中的2个.在所有其他设备上它似乎工作得很好.

应用程序的工作原理是用户使用该应用程序收集信息,文本,照片,签名等......然后将所有这些内容作为提交表中的一行存储/插入到SQLite数据库中.提交表有64列,以满足每个收集的字段.有一个始终在运行的同步方法(它是在可运行线程内执行的AsyncTask,所以即使应用程序关闭,它仍然会在后台同步数据,除非你从android任务管理器中滑动关闭它),将数据同步到远程服务器,如果需要同步,则每10秒检查一次,例如,如果插入了新的提交,它将开始同步该提交.提交完成后,与服务器同步并收到成功响应,然后将其从设备的数据库中删除.到目前为止它已经工作得很好,数千个提交已成功同步等等.但是,我不时地从一两个特定的Note 8平板电脑中得到这一个错误,可以重现这个问题.我已经多次尝试重新创建错误,但是当我测试它并且我已经尝试了各种类型的场景来测试它时它总是有效.

我的代码是数千行,所以我会尽量保持它的相关性.首先,这是runnable的相关代码:

public Runnable myRunnable = new Runnable()
 {

    @Override
    public void run()
    { 
       count ++;
                if(count >= 10)
                {
                    android.util.Log.w("     SYNC     ", "---------------");
                    android.util.Log.w("     SYNC     ", "Checking if sync method is busy");
                    if(!syncBusy)
                    {
                        android.util.Log.w("     SYNC     ", "Sync method OPEN");
                        doSync();//This will start doing sync.
                        count = 0;
                    }
                    else
                    {
                    android.util.Log.w("     SYNC     ", "Sync method BUSY, will try again in 10 seconds");
                    android.util.Log.w("     SYNC     ", "---------------");
                    } …
Run Code Online (Sandbox Code Playgroud)

sqlite android sqliteopenhelper

3
推荐指数
1
解决办法
7041
查看次数

通过 nodejs 使用不记名令牌进行谷歌云身份验证

我的客户有一个在 Google Cloud Run 上运行的 GraphQL API。

我收到了一个用于身份验证的服务帐户以及对 gcloud 命令行工具的访问权限。

像这样使用 gcloud 命令行时:

gcloud auth print-identity-token
Run Code Online (Sandbox Code Playgroud)

我可以生成一个令牌,该令牌可用于向 api 发出发布请求。这有效,我可以从邮递员、失眠症和我的 nodejs 应用程序成功地向 api 发出请求。

但是,当我将 JWT 身份验证与“googleapis”或“google-auth”npm 库一起使用时,如下所示:

var { google } = require('googleapis')

let privatekey = require('./auth/google/service-account.json')

let jwtClient = new google.auth.JWT(
  privatekey.client_email,
  null,
  privatekey.private_key,
  ['https://www.googleapis.com/auth/cloud-platform']
)

jwtClient.authorize(function(err, _token) {
  if (err) {
    console.log(err)
    return err
  } else {
    console.log('token obj:', _token)
  }
})
Run Code Online (Sandbox Code Playgroud)

这将输出一个“承载”令牌:

token obj: {
  access_token: 'ya29.c.Ko8BvQcMD5zU-0raojM_u2FZooWMyhB9Ni0Yv2_dsGdjuIDeL1tftPg0O17uFrdtkCuJrupBBBK2IGfUW0HGtgkYk-DZiS1aKyeY9wpXTwvbinGe9sud0k1POA2vEKiGONRqFBSh9-xms3JhZVdCmpBi5EO5aGjkkJeFI_EBry0E12m2DTm0T_7izJTuGQ9hmyw',
  token_type: 'Bearer',
  expiry_date: 1581954138000,
  id_token: undefined,
  refresh_token: 'jwt-placeholder'
}
Run Code Online (Sandbox Code Playgroud)

然而,这个不记名令牌不能像上面那样工作,并且在发出与 …

google-api-nodejs-client google-cloud-platform gcloud google-cloud-run

3
推荐指数
1
解决办法
2896
查看次数

上传到S3而不暴露您的accessKeyId

我有一个使用一个Web应用程序火力点进行身份验证,数据库和Angular4的前端.我通过我的网络应用程序将图像上传到AWS S3,它运行正常.

问题:

我目前在angular4代码中使用我的accessKeyIdsecretAccessKey将文件直接上传到AWS S3(使用AWS SDK for javascript).当编译角度时,它仍然只是javascript,仍然由客户端浏览器在前端使用.我不喜欢这样,它给我带来了安全风险.

如何在不暴露我的密钥的情况下直接从Angular4上传图像到S3?

amazon-s3 amazon-web-services angular

2
推荐指数
1
解决办法
352
查看次数

恢复后,Android Runnable运行得更快

脚本

我有一个runnable,它每1秒输出一个变量的值.当我启动mainActivity并在后台运行整个应用程序时,runnable启动.

问题

当我关闭应用程序(隐藏状态)并再次启动应用程序时,logcat开始输出更快.每次我这样做都会变得更快.为什么?

@Override
public void onStart()
{
    mHandler.postDelayed(myRunnable, 1000);
    super.onStart();
}

 public Runnable myRunnable = new Runnable()
 {
    @Override
    public void run()
    { 
       count ++;
       android.util.Log.w("     SYNC     ", "COUNT:"+count);
       mHandler.postDelayed(myRunnable, 1000);
    }
};
Run Code Online (Sandbox Code Playgroud)

解决方案/编辑

谢谢大家回答!我会给予信任.然而,@pskink发布此Android Runnable在Resume之后运行得更快,这为我解决了这个问题.

android runnable

1
推荐指数
1
解决办法
970
查看次数