gs: set BOTO_CONFIG for streaming cat

BUG=b:179721419
TEST=Manually tested StreamingCat against different GS bucket.

Change-Id: I8526a72e92c59469b129b11d582b14d805cd309d
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/2690306
Commit-Queue: Congbin Guo <guocb@chromium.org>
Tested-by: Congbin Guo <guocb@chromium.org>
Auto-Submit: Congbin Guo <guocb@chromium.org>
Reviewed-by: Allen Li <ayatane@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
diff --git a/lib/gs.py b/lib/gs.py
index e20817d..f5edd35 100644
--- a/lib/gs.py
+++ b/lib/gs.py
@@ -647,8 +647,13 @@
     if self.dry_run:
       return (lambda: (yield ''))()
 
+    env = None
+    if self.boto_file and os.path.isfile(self.boto_file):
+      env = os.environ.copy()
+      env['BOTO_CONFIG'] = self.boto_file
+
     cmd = [self.gsutil_bin] + self.gsutil_flags + ['cat', path]
-    proc = subprocess.Popen(cmd, stdout=subprocess.PIPE)
+    proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, env=env)
 
     def read_content():
       try: