This question is a bit silly and somewhat off topic, but I thought I
would ask.

Does anyone know of a way to get notified that Finder is initiating a
copy? Our use case is that we are implementing a filesystem [Amazon
S3] that doesn't let us flush anything other than a full file - and we
need to know the length of that file before we can open a connection
to start writing data to the network.

The current tactic is consume all writes, cache locally, and block the
close() from completing until all data has been flushed out to S3.
There are some obvious problems doing this, but we're still
experimenting. The biggest problem is that Finder eventually kills the
operation after the amount of time we block close() exceeds the
MacFUSE daemon timeout. We can set the timeout very high and sidestep
this problem, but that's a pretty bad solution.

What we'd like to do is somehow determine the amount of data that
Finder intends to write to a given handle for a copy operation. With
this, we can start flushing data out immediately [since we know the
file size, which we're required to send to start a write on S3], and
then we slow our consumption of write operations so that they track
with what we've been able to flush.

I'm not sure if this is possible - but perhaps there is a cocoa/carbon
API that we're unaware of that would allow us to infer this
information. JungleDisk [which is implemented via a webdav loopback
server] somehow accomplishes this very thing. It is possible Finder is
sending some out of band information given that it know it is speaking
to the Apple WebDAV filesystem. Nevertheless, I'm at a loss.

Thanks
Jeff
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"MacFUSE" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/macfuse?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to