我正在使用此文件选择器将文件上传到我的服务器:
https://github.com/jcesarmobile/FilePicker-Phonegap-iOS-Plugin
我的服务器需要base64文件,所以我需要转换我上传的文件.我正在使用离子文档中提到的文件插件.所以我的代码看起来像这样:
uploadIOS(){
var self=this
let utis = ["public.data"]
FilePicker.pickFile(
function (uri) {
let correctPath = uri.substr(0, uri.lastIndexOf('/') + 1);
let currentName = uri.substring(uri.lastIndexOf('/') + 1);
self.file.readAsDataURL(correctPath, currentName).then(result=>{
console.log ('reading data ' + JSON.stringify(result))
}).catch((err)=>{
console.log ('err4' + JSON.stringify(err))
})
},
function (error) {
console.log(JSON.stringify(error));
},
function (utis) {
console.log('UTIS', this.utis)
}
)
}
Run Code Online (Sandbox Code Playgroud)
但是当我从Google云端硬盘或iCloud Drive或DropBox上传时,它会返回
{ "代码":5 "消息": "ENCODING_ERR"}
我有一个具有以下结构的 NodeJS 无服务器项目:
-node_modules
-package.json
-serverless.yml
-funcitons
-medium
-mediumHandler.js
Run Code Online (Sandbox Code Playgroud)
我的无服务器.yml:
service: googleAnalytic
provider:
name: aws
runtime: nodejs6.10
stage: dev
region: us-east-1
package:
include:
- node_modules/**
functions:
mediumHandler:
handler: functions/medium/mediumHandler.mediumHandler
events:
- schedule:
name: MediumSourceData
description: 'Captures data between set dates'
rate: rate(2 minutes)
- cloudwatchEvent:
event:
source:
- "Lambda"
detail-type:
- ""
- cloudwatchLog: '/aws/lambda/mediumHandler'
Run Code Online (Sandbox Code Playgroud)
我的 sls 信息显示:
Service Information
service: googleAnalytic
stage: dev
region: us-east-1
stack: googleAnalytic-dev
api keys:
None
endpoints:
None
functions:
mediumHandler: googleAnalytic-dev-mediumHandler
Run Code Online (Sandbox Code Playgroud)
当我运行 sls 时:
serverless …Run Code Online (Sandbox Code Playgroud) 我的代码:
<ion-tab title="Profile" icon="ion-ios-person-outline" badge="badge" href="#/app/profile">
<ion-nav-view name="profile-tab"></ion-nav-view>
</ion-tab>
Run Code Online (Sandbox Code Playgroud)
徽章的值是动态分配的,但当它为零时,徽章仍然会显示。我怎样才能隐藏它?
我有一个与 AWS 一起使用的 python 无服务器项目。但是每当我运行 sls deploy 时,我都会收到此错误,并且我在 .serverless 中注意到它实际上并没有压缩文件,只生成 .json 文件。
发生错误:ParserLambdaFunction - 上传的文件必须是非空的 zip。
我的 yml 看起来像这样:
service: my-service
provider:
name: aws
runtime: python3.6
package:
individually: True
plugins:
- serverless-package-python-functions
- serverless-python-requirements
custom:
pkgPyFuncs: # plugin configuration
buildDir: _build
functions:
parser:
handler: handler.parser
package:
include:
artifact: ${self:custom.pkgPyFuncs.buildDir}/my-service-dev-parser.zip
events:
- http:
cors: true
integration: LAMBDA
passThrough: WHEN_NO_MATCH
path: /
method: post
request:
parameters:
querystring:
application/json: "$input.path('$.body')"
url: true
- cloudwatchLog: '/aws/lambda/pythonParser'
Run Code Online (Sandbox Code Playgroud)
我的 package.json 看起来像这样:
{
"name": "my-service",
"description": "", …Run Code Online (Sandbox Code Playgroud) 我正在编写一个python脚本,它分析一段文本并以JSON格式返回数据.我正在使用NLTK来分析数据.基本上,这是我的流程:
创建端点(API网关) - >调用我的lambda函数 - >返回所需数据的JSON.
我写了我的脚本,部署到lambda但我遇到了这个问题:
资源\ u001b [93mpunkt\u001b [0m未找到.请使用NLTK Downloader获取资源:
\ u001b [31m >>> import nltk nltk.download('punkt')\ u001b [0m
搜索: - '/ home/sbx_user1058/nltk_data' - '/ usr/share/nltk_data' - '/ usr/local/share/nltk_data' - '/ usr/lib/nltk_data' - '/ usr/local/lib/nltk_data' - '/ var/lang/nltk_data' - '/ var/lang/lib/nltk_data'
即使在下载'punkt'之后,我的脚本仍然给了我同样的错误.我在这里尝试了解决方案:
但问题是,nltk_data文件夹很大,而lambda有一个大小限制.
我该如何解决这个问题?或者我可以在哪里使用我的脚本并仍然集成API调用?
我使用无服务器来部署我的python脚本.
我在一个名为api-serive.ts的提供者页面中有我的功能
//get city in profile
getCityInProfile(){
return new Promise((resolve, reject) => {
let headers = new Headers({ 'Authorization':
localStorage.getItem('token') });
this.http.get(this.getProfile,{headers:headers}).subscribe(
(res) => {
console.log (res.json().profile.location)
resolve(res.json().profile.location)
return (resolve(res.json().profile.location));
},(err) => {
reject(err);
});
})
}
Run Code Online (Sandbox Code Playgroud)
当我在另一个page.ts中调用此函数来获取我的个人资料中的城市时,它会返回:
{ "__zone_symbol__state":空, "__ zone_symbol__value": "塞浦路斯"}
这就是我在page.ts中调用它的方式
CityInProfile(){console.log(JSON.stringify(this.jobsServiceProvider.getCityInProfile())+'return')this.cityProfile = this.jobsServiceProvider.getCityInProfile(); }
价值在那里(塞浦路斯),但为什么它会以这种方式返回