Sorry, I tested this more carefully and it's working just fine. Here's what
was confusing me:

* I'm using a different class for writing blobs than I am for reading
blobs, and each has their own BlobStoreContext object (though they are
configured the same).
* I ran a test of putting a blob and reading it back *twice*, using the
separate reader and writer objects. What I noticed is that the write took
twice as long as the read, and the "GetBucketAcl" request happened twice,
instead of once.
* I assumed that the 2nd GetBucketAcl call was from the *writer* calling it
for each putBlob() call, and (given the high latency in my environment),
that would explain why writes take twice as long.
* However, what I was actually observing was the *reader* calling
GetBucketAcl for the first time, after my first getBlob() call.

The only question I have is, is there a way to configure the
"expiresAfterWrite" timeout for the bucketAcls LoadingCache in S3BlobStore?
It's currently set to 30 seconds, and I might want to increase this value.
It looks like it's hard-code, but I'm not familiar enough with jlcouds
and/or guice to know if I can just extend this context module and change
the value:

https://github.com/jclouds/jclouds/blob/master/apis/s3/src/main/java/org/jclouds/s3/blobstore/config/S3BlobStoreContextModule.java#L68



*Steve Kingsland*

Senior Software Engineer

*Opower * <http://www.opower.com/>


*We’re hiring! See jobs here <http://www.opower.com/careers> *


On Wed, Aug 13, 2014 at 4:41 PM, Andrew Phillips <[email protected]> wrote:

>  blobStore.putBlob(), the S3 provider requests the bucket's ACL first. From
>> looking at the code, it appears that the ACLs should be cached after the
>> first GET, but I'm not seeing that.
>>
>
> Could you point out which code (path) specifically you're looking at here?
>
> Thanks!
>
> ap
>

Reply via email to