为什么gsutil rsync会重新下载我们所有的文件?(Why is gsutil rsync re-downloading all our files?)
我们一直在使用
gsutil -m rsync -r
来保持开发和部署框与GCS存储桶同步近2年而没有任何问题。 桶中有大约85k个物体。直到最近,这完美地工作:我们每隔15分左右运行一个部署框 - > GCS rsync,以备份所有新上传的资源,然后每当我们想要刷新本地时,再使用GCS - > dev框rsync dev数据(在OSX El Capitan上运行)。
然而,在过去的几个月里,GCS-> dev rsync开始膨胀,下载越来越多的图像。
最初我只是觉得“很棒,我们上传了更多的资源”,但它的增长速度比数据快,直到今天它似乎正在下载整个85k图像。
我已经仔细检查过我在正确的位置,命令是否正确,路径是否正确等等。对于所有
gsutil
输出都是通过“正在复制...”和“正在下载”的大量滚动来滚动。 ..“消息,好好并行使用我们的100mbps连接,当我去另一个终端并运行find . -type f | wc -l
find . -type f | wc -l
find . -type f | wc -l
在目标目录上每隔10秒,它显示每分钟只添加2或3个新文件。 我看一下gsutil说它现在正在下载的文件的修改时间,而且大多数情况下它们已经过时了,很多都没有在一年或更长时间内发生变化。 含义:它使用大量的时间和带宽下载所有数据,所有这些都是为了几百个文件。最近的OSX
gsutil
版本有什么变化吗? 可能有错误吗? 我怎么会开始追踪这个呢? 还是报道呢? 新闻组gsutil-discuss
和gs-discussion
已经存档,gce-discussion
就是使用GCE实例中的gsutil
。谢谢!
We've been using
gsutil -m rsync -r
to keep dev and deploy boxes in sync with a GCS bucket for nearly 2 years without any problem. There are about 85k objects in the bucket.Until recently, this worked perfectly: we'd run a deploy-box -> GCS rsync every 15 mins or so, to keep all new uploaded resource backed up, and then a GCS -> dev box rsync whenever we wanted to refresh the local dev data (running on OSX El Capitan).
Within the last couple of months, though, the GCS->dev rsync has started to bloat, downloading more and more images.
Initially I just thought "great, we're getting more resources uploaded", but it's been growing way faster than the data, until today when it seems to be downloading the whole 85k images.
I've double-checked I'm in the right place, the command is correct, the paths are correct, etc. For all that the
gsutil
output is scrolling by with reams and reams of "Copying..." and "Downloading..." messages, making good parallel use of our 100mbps connection, when I go to another terminal and runfind . -type f | wc -l
on the destination directory every 10 seconds, it shows that barely 2 or 3 new files are being added a minute. I look at modification times on files that gsutil says it's downloading right now and in the large majority they're old, plenty haven't changed in a year or more. Meaning: it's downloading all the data, using tons of time and bandwidth, all for the sake of a few hundred files.Has something changed in recent OSX
gsutil
versions? Is there possibly a bug? How would I even start to go about tracking this down? Or reporting it? The newsgroupsgsutil-discuss
andgs-discussion
have been archived, and the talk ingce-discussion
is all about usinggsutil
from GCE instances.Thanks!
原文:https://stackoverflow.com/questions/39016621
最满意答案
KEY_PASSWORD
是定义键列名的常量,而不是列名本身。更换
String password = cursor.getString(cursor .getColumnIndex("KEY_PASSWORD"));
同
String password = cursor.getString(cursor .getColumnIndex(KEY_PASSWORD));
KEY_PASSWORD
is your constant that defines the key column name, not the column name itself.Replace
String password = cursor.getString(cursor .getColumnIndex("KEY_PASSWORD"));
with
String password = cursor.getString(cursor .getColumnIndex(KEY_PASSWORD));
相关问答
更多-
在尝试从游标访问列值之前,您必须将其移动到指向有效行。 使用moveTo...()方法之一。 例如,改变 Cursor c1= db.rawQuery(sql, null); if(c1!=null && c1.getCount()>0){ int i1= c1.getColumnIndex("score"); String score= c1.getString(i1); 至 Cursor c1= db.rawQuery(sql, null); if(c1.moveToFirst()){ ...
-
问题是FOREIGN KEY声明。我在最后声明它们是这样的: CREATE TABLE播放列表歌曲(id INTEGER PRIMARY KEY,playlist_id INTEGER,song_id INTEGER,FOREIGN KEY(playlist_id)REFERENCES播放列表(id)ON DELETE CASCADE,FOREIGN KEY(song_id)REFERENCES song(id)ON DELETE CASCADE); 感谢@ njzk2 Problem was FOREIG ...
-
android中的SQLite异常(SQLite Exception in android)[2022-05-29]
我迟到了,但我刚看到这个。 在我的例子中,我从数据库查询中创建了一个Cursor对象,然后在关闭游标之前意外关闭了数据库。 检查这是否正在发生。 I'm late to the party, but I just saw this. In my case, I had created a Cursor object from a database query, then accidentally closed the database before I closed the cursor. Check wh ... -
ListView - 自定义适配器 - CursorIndexOutOfBound异常(ListView - Custom Adapter - CursorIndexOutOfBound Exception)[2021-10-02]
尝试利用 c.moveToPosition(int position);// Move the cursor to an absolute position. 在getview方法中,以便您可以正确设置listview行中的数据。 try making use of the c.moveToPosition(int position);// Move the cursor to an absolute position. inside the getview method so that you c ... -
private static final String QUESTIONS_TABLE_CREATE = "create table "+ QUESTIONS_TABLE +" (" + KEY_ROWID + " integer primary key autoincrement, " + KEY_TYPE + "integer not null," + KEY_CONTENT + " text not null, " + KEY_A + " text, " + ...
-
在DBOpenHelper实现onCreate() 。 放置createTable()方法的内容。 请参阅开发指南以供参考。 Implement onCreate() in your DBOpenHelper. Put there content of the createTable() method. See Dev Guide for reference.
-
您的数据库表中可能没有列_id。 拉数据库并用SqliteViewer打开它来检查它是否真的存在。 数据库通常在/data/data/com.yourapp.package/databases/下 你可以使用: http : //sqlitebrowser.sourceforge.net/或http://www.navicat.com/en/products/navicat_sqlite/sqlite_overview.html (他们也有免费的精简版) You probably don't have a ...
-
SQLite异常(SQLite exception)[2022-06-03]
发现我错过了。 我已经从其他方法再次插入这些值。 谢谢大家。 Found that i missed. i has been inserting those values one more time from other method. Thanks for all. -
SQLite-CursorIndexOutofBound Exception-Android(SQLite-CursorIndexOutofBound Exception-Android)[2023-07-30]
KEY_PASSWORD是定义键列名的常量,而不是列名本身。 更换 String password = cursor.getString(cursor .getColumnIndex("KEY_PASSWORD")); 同 String password = cursor.getString(cursor .getColumnIndex(KEY_PASSWORD)); KEY_PASSWORD is your constan ... -
关闭后,您将访问游标以获取日志消息。 要确保正确关闭,请使用以下游标: Cursor c = DB.rawQuery(queryString); try{ while(c.moveToNext()){ Cursor c2 = DB.rawQuery(queryString2); try{ while(c2.moveToNext()){ ...