遇到一个很奇葩的问题。
头一次遇到服务端,根据客户端header里面的Accept更改返回内容格式的。
一开始用了个通用的:
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7'
结果给我返回的居然是XML格式的。
后来取消了。就返回json格式的了。。
头一次遇到服务端,根据客户端header里面的Accept更改返回内容格式的。
一开始用了个通用的:
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7'
结果给我返回的居然是XML格式的。
后来取消了。就返回json格式的了。。
最近整理图片,发现有PNG图片,但是扩展名是jpg,我说怎么加EXIF加不上呢。
python有个模块imghdr:
imghdr.what(file_path)
返回png,jpeg等等。
然后再用piexif或者exif来写入EXIF信息。
不同的程序,对EXIF的取值也是不同。以拍摄时间为例:
华为手机拍照的EXIF,里面的时间,是这几个字段,值相同:
IMG_20221016_181142.jpg
DateTime = 2022:10:16 18:11:43
DateTimeOriginal = 2022:10:16 18:11:43
DateTimeDigitized = 2022:10:16 18:11:43
小米只有这两个字段:
IMG_20120826_220137.jpg
DateTimeOriginal = 2012:08:26 22:01:35
DateTimeDigitized = 2002:12:08 12:00:00
三星跟华为一样,三个字段但是值一样:
20130705_181734.jpg
DateTime = 2013:07:05 18:17:34
DateTimeOriginal = 2013:07:05 18:17:34
DateTimeDigitized = 2013:07:05 18:17:34
苹果也是一样的,三个字段但是值一样:
IMG_0238.JPG
DateTime = 2013:07:20 10:48:02
DateTimeOriginal = 2013:07:20 10:48:02
DateTimeDigitized = 2013:07:20 10:48:02
nextcloud的插件memories里面获取EXIF时间的代码如下:
public static function parseExifDate(array $exif): \DateTime
{
// Get date from exif
$exifDate = $exif['SubSecDateTimeOriginal'] ?? $exif['DateTimeOriginal'] ?? $exif['CreateDate'] ?? null;
可以看到这几个里面唯一重合的,就一个DateTimeOriginal。
至于什么SubSecDateTimeOriginal和CreateDate,根本没见过,咱也不知道哪来的这些信息。
后续往照片里,写EXIF时间信息的时候,只写这一个字段就得了。
http://NAS_URL/remote.php/dav/files/NAS_USER_NAME/FILE_PATH
DELETE
把文件直接上传到用户目录下,但是在nextcloud并不能识别,看不到。因为没建索引,没入库。
重新扫描下就行了。
用户名
dockerming
occ的位置
要指定好。
/usr/bin/docker exec --user www-data MyNextCloud php -f /var/www/html/occ files:scan --all
/usr/bin/docker exec --user www-data MyNextCloud php -f /var/www/html/occ memories:index
插件安装http://NAS_URL/settings/apps/installed/memories
/usr/bin/docker exec --user www-data MyNextCloud php -f /var/www/html/occ preview:pre-generate -vvv
/usr/bin/docker exec --user www-data MyNextCloud php -f /var/www/html/occ preview:generate-all -vvv