我想知道如何使用NSGI上传图像,即使这些静态文件没有存储在Orion或Mongo中。我想知道是否有一种方法来配置NSGI将图像转发到AWS、S3、Buck或其他位置?
发布于 2022-07-14 06:02:49
正如您正确识别的那样,二进制文件不是上下文数据的良好候选文件,不应直接保存在上下文代理中。通常的模式如下:
假设您有一个与库伦托链接的车牌阅读器库,并希望在车辆经过时存储它们的图像。在这种情况下,来自媒体流的事件应该导致两个单独的操作:
这样做意味着您可以确认图像是安全存储的,然后发送以下内容:
{
"vehicle_registration_number": {
"type": "Property",
"value": "X123RPD"
},
"image_download": {
"type": "Property",
"value": "http://example.com/url/to/image"
}
}另一种方法是简单地将一些返回源文件的链接作为元数据:
{
"vehicle_registration_number": {
"type": "Property",
"value": "X123RPD",
"origin": {
"type": "Property",
"value": "file://localimage"
}
}
}然后,如果您在vehicle_registration_number上注册了一个以某种方式将原始文件链接回服务器的注册,它可以在上下文代理的更新后上传图像(然后再重新插入)。
选项一比较简单。如果登记范围较窄,则备选案文二将更有意义。例如,只有speed属性大于70 km/h的车辆才上传VRN的图像。
在本体论上,您可以说设备与Photo相图有关系,这意味着Device可以有一个额外的latestRecord属性:
{
"latestRecord": {
"type": "Relationship",
"object": "urn:ngsi-ld:CatalogueRecordDCAT-AP:0001"
},
}并使用标准数据模型(如定义为的CatalogueRecordDCAT-AP )创建一个单独的实体,该实体保存了照片本身的详细信息。source和sourceMetadata等属性帮助定义原始文件的位置。
{
"id": "urn:ngsi-ld:CatalogueRecordDCAT-AP:0001",
"type": "CatalogueRecordDCAT-AP",
"dateCreated": "2020-11-02T21:25:54Z",
"dateModified": "2021-07-02T18:37:55Z",
"description": "Speeding Ticket",
"dataProvider": "European open data portal",
"location": {
"type": "Point",
"coordinates": [
36.633152,
-85.183315
]
},
"address": {
"streetAddress": "2, rue Mercier",
"addressLocality": "Luxembourg",
"addressRegion": "Luxembourg",
"addressCountry": "Luxembourg",
"postalCode": "2985",
"postOfficeBoxNumber": ""
},
"areaServed": "European Union and beyond",
"primaryTopic": "Public administration",
"modificationDate": "2021-07-02T18:37:55Z",
"applicationProfile": "DCAT Application profile for data portals in Europe",
"changeType": "First version",
"source": "http://example.com/url/to/image"
"sourceMetadata": {"type" :"jpeg", "height" : 100, "width": 100},
"@context": [
"https://smartdatamodels.org/context.jsonld"
]
}https://stackoverflow.com/questions/72969080
复制相似问题