标签: binaryfiles

RESTful设计 - 如何为实体的附件建模

我试图在REST中模拟实体的附件.假设缺陷实体可以附加多个附件.每个附件都有一个描述和一些其他属性(最后修改,文件大小......).附件本身是任何格式的文件(jpeg,doc ...)

我想知道我应该如何对REST进行建模

我想到了以下两个选项:

第一种方法(使用相同的资源,不同的表示):

  • GET,content-type:http:// my-app/defects / {id}/attachments上的XML将以XML格式返回缺陷的附件元数据(描述,最后修改,文件大小......)

  • GET,内容类型:http:// my-app/defects / {id}/attachments上的gzip 将在zip文件中返回缺陷的附件

  • GET,content-type:mime multi-part on http:// my-app/defects / {id}/attachments将返回多部分消息中的缺陷附件(二进制数据和XML元数据)

  • POST,content-type:http:// my-app/defects / {id}/attachments上的XML 将创建新附件,元数据只附加文件(然后用户必须发送带有二进制数据的PUT请求)

  • POST,content-type:mime\multi-part on http:// my-app/defects / {id}/attachments将创建附件,客户端可以在单个往返中发送元数据和文件本身

第二种方法(将附件的数据与元数据分开):

  • GET,content-type:http:// my-app/defects / {id}/attachments上的XML将以XML格式返回缺陷的附件元数据(描述,最后修改,文件大小......)

  • GET,内容类型:http:// my-app/defects / {id}/attachments/files上的gzip 将在单个zip中返回缺陷的附件二进制数据

创建新附件,首先调用:

  • POST,content-type:http:// my-app/defects / {id}/attachments上的XML 将创建新附件,元数据只附加文件(然后用户必须发送带有二进制数据的PUT请求)

然后添加二进制数据本身:


一方面,第一种方法更加健壮和高效,因为客户端可以在单次往返中创建\获取附件元数据和二进制数据.另一方面,我有点不愿意使用mime-multipart表示,因为它消耗和生产更麻烦.

编辑:我检查了闪烁上传REST API.他们似乎正在使用多部分消息来包含照片和照片属性.

rest binary binaryfiles attachment

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

Bash脚本 - 读取二进制文件

我是脚本新手,但我有很多使用C#和Java等语言编程的经验.

我有一个包含二进制数据的文件.我想编写一个Bash脚本来读取该文件中包含的年,月和日,这样我就可以根据记录日期将相关的MOD文件排序到文件夹中.我找不到一种方法来读取二进制数据并在bash脚本中解析它.有没有办法做到这一点?

bash scripting binaryfiles

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

在单个调用c ++中将整个二进制文件读入数组

我试图将二进制文件读入结构数组

struct FeaturePoint
{  
  FeaturePoint (const int & _cluster_id, 
            const float _x, 
            const float _y, 
            const float _a, 
            const float _b
            ) : cluster_id (_cluster_id), x(_x), y(_y), a(_a), b(_b) {}
  FeaturePoint (){}
  int cluster_id; 
  float x;
  float y;
  float a;
  float b;
};
Run Code Online (Sandbox Code Playgroud)

下面的代码可以工作,但是通过将每个新元素推送到数组上,一次完成这一个元素

void LoadImageFeaturesFromBinaryFile(const char * FileName, std::vector<FeaturePoint>& features )
{
  char strInputPath[200];
  strcpy (strInputPath,"/mnt/imagesearch/tests/");
  strcat (strInputPath,FileName);
  strcat (strInputPath,".bin");
  features.clear();
  ifstream::pos_type size;
  ifstream file (strInputPath, ios::in|ios::binary|ios::ate);
  if (file.is_open())
  {
    size = file.tellg();
    cout<< "this file size is : …
Run Code Online (Sandbox Code Playgroud)

c++ binaryfiles ifstream

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

在Matlab中通过fread读取多个精度二进制文件

我有一个巨大的二进制文件,其中包含多个精度的记录{'Double','Double','Int32','Int8','Char'}.我已经使用memmapfile读取数据,但读取数据的速度很慢.有没有办法通过fread读取整个文件?

binary file-io matlab binaryfiles

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

SQLite:从命令行插入二进制数据

我有这个SQLite表:

create table mytable (
aid INTEGER NOT NULL PRIMARY KEY, 
bid INTEGER NOT NULL, 
image BLOB
);
Run Code Online (Sandbox Code Playgroud)

我想image在此表的字段中插入二进制文件.是否可以sqlite3从命令行界面执行此操作?如果是这样,怎么样?我正在使用Ubuntu.

谢谢!

sqlite blob binaryfiles

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

如何防止在git中推送大型二进制blob?

我有一个中央git存储库,我自己和几个合作者经常推送和拉动.在过去,我偶然提交了一个大型的二进制blob,这需要重新设置才能完全删除,这对每个人来说都是一种痛苦,所以我想在将来防止这种情况发生.是否可以在远程存储库中设置一个钩子来检查正在推送的文件的文件大小(无论是添加新文件还是更新现有文件),并拒绝推送超过阈值大小的文件,比如2MB?

重要的是,我希望可以容忍已经大于2MB的未受影响的现有文件(因此,如果存储库中已有2MB文件,则只有当推送添加2MB文件或将现有文件增加到2MB时才不应拒绝推送).此外,我希望钩子在远程端执行,所以我不必担心客户端不必设置钩子.

编辑:由于推送可以包含多个提交,甚至一个带有大文件的提交会使其停留在repo中,我希望防止包含/任何提交/增长或增加> = 2MB文件的推送.

git binaryfiles githooks

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

用于二进制文件的svn diff(excel文件)

我为excel文件配置了svn存储库,

所以我检查并创建myworkingdirectory然后我更改了excel文件,我想通过svn diff查看更改

它说文件标记为二进制事件,尽管我已经改变了

Subversion客户端配置文件和

[miscellany]
enable-auto-props = yes
Run Code Online (Sandbox Code Playgroud)

而且我也添加了这一行

*.xlsx = svn:mime-type=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
Run Code Online (Sandbox Code Playgroud)

我用的时候

svn proplist --verbose /path to /myworkingdirectory/file.xlsx
Run Code Online (Sandbox Code Playgroud)

它列出了mime类型及其值

我不知道还有什么可以通过svn diff查看更改,就像在文本格式文件中看到的那样

svn binaryfiles

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

python:二进制文件的正则表达式搜索模式(半个字节)

我使用以下正则表达式模式在二进制文件中搜索0xDEAD4FAD:

my_pattern = re.compile(b"\xDE\xAD\x4F\xAD")
Run Code Online (Sandbox Code Playgroud)

但是如何推广搜索模式以搜索0xDEAD4xxx?似乎无法切入半个字节

python regex binaryfiles

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

使用浏览器将二进制文件上传到github?

如何将新的二进制文件上传到Github?

我尝试上传一些woff字体,但我不能,因为Github只允许我添加一个文本文件,而不是如何上传一个,即使有这个请求已经解决了.

binaryfiles github

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

在Python中读取直接访问二进制文件格式

背景:

使用以下Fortran代码在Linux机器上读取二进制文件:

        parameter(nx=720, ny=360, nday=365)
c 
        dimension tmax(nx,ny,nday),nmax(nx,ny,nday)
        dimension tmin(nx,ny,nday),nmin(nx,ny,nday)
c 
        open(10,
     &file='FILE',
     &access='direct',recl=nx*ny*4)
c
        do k=1,nday
        read(10,rec=(k-1)*4+1)((tmax(i,j,k),i=1,nx),j=1,ny) 
        read(10,rec=(k-1)*4+2)((nmax(i,j,k),i=1,nx),j=1,ny) 
        read(10,rec=(k-1)*4+3)((tmin(i,j,k),i=1,nx),j=1,ny) 
        read(10,rec=(k-1)*4+4)((nmin(i,j,k),i=1,nx),j=1,ny) 
        end do
Run Code Online (Sandbox Code Playgroud)

档案细节:

options  little_endian
title global daily analysis (grid box mean, the grid shown is the center of the grid box)
undef -999.0
xdef 720 linear    0.25 0.50
ydef 360  linear -89.75 0.50
zdef 1 linear 1 1
tdef 365 linear 01jan2015 1dy
vars 4
tmax     1  00 daily maximum temperature (C)
nmax     1  00 number of reports …
Run Code Online (Sandbox Code Playgroud)

python fortran binaryfiles

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

标签 统计

binaryfiles ×10

binary ×2

python ×2

attachment ×1

bash ×1

blob ×1

c++ ×1

file-io ×1

fortran ×1

git ×1

githooks ×1

github ×1

ifstream ×1

matlab ×1

regex ×1

rest ×1

scripting ×1

sqlite ×1

svn ×1