我上传的许多照片,没有EXIF数据,但它们在名称日期。谷歌照片用于上传日期对它们进行排序。我想使用的日期在他们的名字进行修改。
到目前为止,我试图用驱动器API更改修改日期,我可以改变它,但它不被使用。我还试图修改imageMediaMetadata.date,但它似乎是只读给我。
码:
function myFunction() {
var files = DriveApp.getFilesByName("IMG-20150402-WA0002_1.jpg")
while (files.hasNext()) {
var file = files.next();
var name = file.getName().toUpperCase();
if (name.indexOf("-WA") > -1) {
if (name.indexOf("IMG-20") == 0 || name.indexOf("VID-20") == 0) {
var y = name.substr(4, 4);
var m = name.substr(8, 2);
var d = name.substr(10, 2);
var file2 = Drive.Files.get(file.getId());
file2.imageMediaMetadata.date = y+"-"+m+"-"+d+"T12:00:00.000Z";
var file3 = Drive.Files.patch(file2, file.getId());
Logger.log(name + " no ok " + file3.imageMediaMetadata.date); // same as file2
}
}
}
我可以将它们删除,修改原始文件,然后重新上传,但在此之前,我想,以确保没有其他办法。
谢谢。
也许你可以编程写的EXIF头文件?
我也将寻找使用新十岁上下的谷歌照片上传API老照片时提供照片的日期的便捷方式。我的照片不一定有EXIF数据;我想手动设置我的MacOS机的磁盘上我的JPEG文件的一个创建/最后修改日期,然后通过谷歌照片Web界面和对本地磁盘上的JPEG文件的登记日期就变成了照片在谷歌的照片日期,预期。该文件没有EXIF数据,如果没有,那就不包含相同的日期,所以显然是谷歌的照片网络上传尊重为照片中的本地文件系统的日期。
然后我试图嗅出使用查尔斯代理业务,但显然Web界面不使用谷歌API的照片同样的方式,我们的外部开发者 - 它不POST到https://photoslibrary.googleapis.com/v1/uploads或者看起来是这样。所以我不能逆向工程这一进程。我也无法查看文件创建日期是在过去。
什么是伟大的是在上载POST请求,希望将此日期HTTP标头。我没有看到具有设置此的任何手段batchCreate(https://developers.google.com/photos/library/reference/rest/v1/mediaItems/batchCreate)方法。