我有几千张高分辨率的JPEG照片存储在旅行博客网站上,并希望编写一些Ruby代码,从这些图像中提取一些关键的EXIF元数据值,而无需下载每个图像文件的全部内容(它们很大,我有很多这样的图片)。
我正在使用'exifr' gem来读取EXIF数据,它被设计为可以与任何类型的IO对象一起使用,而不仅仅是本地文件。但是,'Net :: HTTPResponse'对象实际上并不是一个IO对象,尽管如果您通过将' read_body '方法传递给块,则允许进行增量读取。然而,我已经阅读了关于这种增量读取是否真的允许您仅下载文件的一部分的争论,或者它是否只是允许您以块的方式读取内容以提高效率(即整个内容仍然被下载)。
那么,我想做的事情可行吗?我应该寻找代替品来替换'Net :: HTTP',还是有什么办法可以让我访问低级别的TCP套接字(它应该是一个IO对象),将其传递给'exifr'代码,仅读取足够的图像以获取EXIF数据?还有其他解决方案吗?
我正在使用'exifr' gem来读取EXIF数据,它被设计为可以与任何类型的IO对象一起使用,而不仅仅是本地文件。但是,'Net :: HTTPResponse'对象实际上并不是一个IO对象,尽管如果您通过将' read_body '方法传递给块,则允许进行增量读取。然而,我已经阅读了关于这种增量读取是否真的允许您仅下载文件的一部分的争论,或者它是否只是允许您以块的方式读取内容以提高效率(即整个内容仍然被下载)。
那么,我想做的事情可行吗?我应该寻找代替品来替换'Net :: HTTP',还是有什么办法可以让我访问低级别的TCP套接字(它应该是一个IO对象),将其传递给'exifr'代码,仅读取足够的图像以获取EXIF数据?还有其他解决方案吗?